日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Oracle數(shù)據(jù)庫(kù)編寫有效事務(wù)指導(dǎo)方針

瀏覽:252日期:2023-11-25 12:54:58

數(shù)據(jù)共享是數(shù)據(jù)庫(kù)最基本的特征之一。但是數(shù)據(jù)共享雖然為員工帶來了便利,但也產(chǎn)生了一些負(fù)面作用。例如因用戶并發(fā)存取而導(dǎo)致的對(duì)數(shù)據(jù)一致性的破壞、由于在修改數(shù)據(jù)過程中的意外事故導(dǎo)致數(shù)據(jù)完整性破壞、非法用戶未經(jīng)授權(quán)修改數(shù)據(jù)等等。所以,在數(shù)據(jù)庫(kù)設(shè)計(jì)過程中,數(shù)據(jù)庫(kù)管理員一方面要想著如何提高數(shù)據(jù)的共享程度,另一方面,也需要考慮如何保護(hù)數(shù)據(jù)的安全性。

在Oracle數(shù)據(jù)庫(kù)中,提供了一種被稱為“事務(wù)”的控制機(jī)制。通過事物,能夠完成對(duì)數(shù)據(jù)有效安全的修改操作,使數(shù)據(jù)庫(kù)中的數(shù)據(jù)達(dá)到一個(gè)數(shù)據(jù)一致的狀態(tài)。舉個(gè)簡(jiǎn)單的例子,現(xiàn)在有一個(gè)借書系統(tǒng)中設(shè)涉及到兩張表,一張是圖書庫(kù)存表,一張是用戶借書情況表。在用戶借書的時(shí)候,數(shù)據(jù)庫(kù)需要進(jìn)行兩個(gè)操作,一是從圖書庫(kù)存表中扣掉庫(kù)存;另一個(gè)操作時(shí)在用戶借書表中加入這個(gè)借書操作。數(shù)據(jù)庫(kù)在操作時(shí),往往是先扣減庫(kù)存,然后再在用戶借書情況表中加入借書紀(jì)錄。假設(shè)用戶在借書的時(shí)候,第一步操作成功,即已經(jīng)從圖書庫(kù)存表中扣除了某書的庫(kù)存;但是,在第二步時(shí)由于發(fā)現(xiàn)用戶借的書已經(jīng)超量或者發(fā)現(xiàn)用戶的卡中還有罰款不能夠借書時(shí),借書就會(huì)不成功。若沒有事務(wù)做控制的話,很明顯圖書庫(kù)存就會(huì)不準(zhǔn)。而在事務(wù)的管理下,當(dāng)?shù)诙讲怀晒Φ脑挘谝徊讲僮骶蜁?huì)發(fā)生回滾。也就是說,事務(wù)可以把數(shù)據(jù)庫(kù)的好幾個(gè)操作步驟當(dāng)作一個(gè)整體,當(dāng)其中有某個(gè)操作沒有成功的話,則所有操作都會(huì)發(fā)生回滾。Oracle數(shù)據(jù)庫(kù)就是通過這種機(jī)制來保障數(shù)據(jù)的一致性問題。

但是,事務(wù)若編寫的不好的話,則不但起不到應(yīng)有的作用,還會(huì)大大降低數(shù)據(jù)庫(kù)的性能。如在數(shù)據(jù)庫(kù)事務(wù)執(zhí)行時(shí)間比較長(zhǎng),就很有可能導(dǎo)致鎖沖突,從而降低數(shù)據(jù)庫(kù)的并發(fā)訪問性能。所以,數(shù)據(jù)庫(kù)管理員在編寫事務(wù)時(shí),還是需要遵守幾個(gè)指導(dǎo)方針。

指導(dǎo)方針一:在事務(wù)中盡量使得訪問的紀(jì)錄最小。

在事務(wù)中,若執(zhí)行Update等記錄操作語句,數(shù)據(jù)庫(kù)為了保障數(shù)據(jù)的一致性,會(huì)對(duì)其所訪問的記錄加鎖,防止在同一時(shí)間內(nèi)其他用戶對(duì)其修改。此時(shí),若其他用戶需要訪問加鎖的記錄,則必須等待。此時(shí)就會(huì)發(fā)生鎖沖突。

所以,在事務(wù)中要盡量使得訪問的記錄量最小。如此就可以減少鎖定的行數(shù),從而減少事務(wù)之間的沖突。這要求數(shù)據(jù)庫(kù)管理員在事務(wù)中盡量精確的定位語紀(jì)錄。如在數(shù)據(jù)庫(kù)中讀取記錄時(shí),最好能夠使用Where語句進(jìn)行定位。并且在編寫Where語句的時(shí)候,要盡量的詳細(xì),最好能夠?qū)崿F(xiàn)一對(duì)一,則是最好的。

如在庫(kù)存盤點(diǎn)的時(shí)候,事務(wù)處理語句需要從數(shù)據(jù)庫(kù)中讀取一定數(shù)量的記錄,并且為這些記錄進(jìn)行加鎖。此時(shí),若記錄讀取的過多的話,就會(huì)對(duì)其他用戶訪問表中的記錄造成麻煩。為此,數(shù)據(jù)庫(kù)管理員應(yīng)該建議應(yīng)用前臺(tái)應(yīng)用程序在開發(fā)的過程中,加入一些限制條件。如按照產(chǎn)品的分類來更新庫(kù)存。如此的話,就可以減少一個(gè)事務(wù)一次性讀取的記錄數(shù)量,從而把鎖的影響降低到最低。

指導(dǎo)方針二:保持事務(wù)盡可能的簡(jiǎn)潔。

在事務(wù)中盡量使得訪問的紀(jì)錄最小,這是從數(shù)量的角度來考慮鎖沖突。而保持事務(wù)盡可能的簡(jiǎn)潔,則是從時(shí)間的角度來考慮避免鎖沖突的事情。保持事務(wù)盡可能的簡(jiǎn)潔,主要是要求數(shù)據(jù)庫(kù)管理員在編寫事務(wù)的時(shí)候,不要把事務(wù)寫的太過于龐大與復(fù)雜。否則,事務(wù)在執(zhí)行的時(shí)候就會(huì)占用比較多的時(shí)間。而這直接導(dǎo)致的后果就是數(shù)據(jù)庫(kù)會(huì)把某些記錄、甚至一張數(shù)據(jù)表鎖住比較長(zhǎng)的時(shí)間。這就會(huì)惡化鎖對(duì)數(shù)據(jù)庫(kù)的負(fù)面影響。

故當(dāng)用戶在知道了必須要進(jìn)行修改的記錄之后,就要馬上啟動(dòng)事務(wù);并且在最短時(shí)間內(nèi)執(zhí)行完相關(guān)的修改語句,然后立即遞交或者回滾。而且,只有在確實(shí)需要時(shí),才打開事務(wù)語句。具體的來說,數(shù)據(jù)庫(kù)管理員在事務(wù)的簡(jiǎn)潔性方面,可以嘗試如下方法。

一是在同一個(gè)事務(wù)中不要加入過多的修改或者刪除語句。如當(dāng)用戶需要更新用戶信息表中的相關(guān)數(shù)據(jù)。例如在員工的編號(hào)前加入YG前綴并且同時(shí)根據(jù)員工入職年份計(jì)算員工工齡。這兩個(gè)更新語句若從技術(shù)上來說,放在同一個(gè)事務(wù)中并沒有什么不妥。但是,當(dāng)員工數(shù)量比較多時(shí),若把他們合并在一起,則這個(gè)事務(wù)執(zhí)行得時(shí)間會(huì)比較久。為此,最好在更新數(shù)據(jù)庫(kù)表的時(shí)候,若預(yù)計(jì)執(zhí)行時(shí)間會(huì)比較長(zhǎng),則最好能夠把更新語句進(jìn)行分割,如一列列更新等等。

二是在更新時(shí),若一次性更新的語句比較多,最好能夠選擇合適的時(shí)候更新。更新某個(gè)數(shù)據(jù)庫(kù)中記錄,其執(zhí)行所需要的時(shí)間往往跟數(shù)據(jù)庫(kù)的記錄成正比。其記錄越多,更新所需要的時(shí)間越多。為此,筆者建議,當(dāng)需要更新的記錄比較多的時(shí)候,最好能夠選擇合理的時(shí)機(jī)。如有些應(yīng)用程序在設(shè)計(jì)時(shí),可以把這個(gè)更新放在后臺(tái)處理。如此的話,應(yīng)用程序就可以選擇數(shù)據(jù)庫(kù)比較空的時(shí)候,來更新表中的記錄。這無疑可以在很大程度上降低事務(wù)對(duì)數(shù)據(jù)庫(kù)的負(fù)面影響。

指導(dǎo)方針三:不要在事務(wù)處理期間要求用戶輸入。

數(shù)據(jù)庫(kù)管理員在編寫事務(wù)時(shí),要確保在事務(wù)啟動(dòng)之前,讓數(shù)據(jù)庫(kù)系統(tǒng)獲得事務(wù)執(zhí)行所需要的所有內(nèi)容。如記錄的查詢條件、所需要更新的內(nèi)容等等。如果在事務(wù)執(zhí)行的過程中還需要用戶的輸入,就回滾當(dāng)前的事務(wù)。當(dāng)用戶提供了必要的參數(shù)之后,再重新啟動(dòng)這個(gè)事務(wù)。因?yàn)榧词乖谑聞?wù)執(zhí)行的過程中,用戶立即響應(yīng)。但是,用戶的反應(yīng)速度要比電腦的響應(yīng)速度慢的多。所以,當(dāng)用戶在事務(wù)執(zhí)行的過程中需要輸入?yún)?shù)的話,就會(huì)使得這個(gè)事務(wù)所占用的數(shù)據(jù)庫(kù)資源要保持很長(zhǎng)的時(shí)間。這就有可能增加阻塞的風(fēng)險(xiǎn)。因?yàn)楫?dāng)用戶沒有及時(shí)輸入所需要的參數(shù)時(shí),事務(wù)仍然會(huì)保持活動(dòng)狀態(tài),并鎖定相關(guān)的資源,直到他們響應(yīng)為止。若用戶所需要輸入的參數(shù)比較多時(shí),用戶可能會(huì)幾分鐘甚至一個(gè)小時(shí)沒有輸入。

這不是一種理論上的假設(shè),筆者在實(shí)際工作中就碰到過這種例子。如在一個(gè)ERP系統(tǒng)中有訂單變更的功能。若在設(shè)計(jì)的時(shí)候,在用戶打開銷售訂單變更單就觸發(fā)變更事務(wù)的話,則因?yàn)橛脩糨斎胗唵巫兏枰臅r(shí)間不能夠確定。有時(shí)候用戶這邊改一改,那邊再確認(rèn)一下,可能一個(gè)小時(shí)就過去了。此時(shí),這張銷售訂單對(duì)應(yīng)的內(nèi)容其他用戶就無法查看了,因?yàn)閿?shù)據(jù)庫(kù)中已經(jīng)被這個(gè)事務(wù)鎖住。這顯然是設(shè)計(jì)的不合理的。筆者認(rèn)為,應(yīng)到在用戶點(diǎn)擊確認(rèn)按鈕時(shí),再觸發(fā)這個(gè)變更事務(wù)。此時(shí),用戶已經(jīng)輸入了所需要更改的所有內(nèi)容,在更新事務(wù)的執(zhí)行過程中,不需要用戶再輸入其他的額外參數(shù)。通過這種方式,就可以把事務(wù)所占用資源的時(shí)間縮短到最低。

指導(dǎo)方針?biāo)模涸跒g覽數(shù)據(jù)時(shí),盡量不要打開事務(wù)。

根據(jù)筆者的經(jīng)驗(yàn),用戶更改數(shù)據(jù)所需要的時(shí)間,其實(shí)很少。而大部分時(shí)間則是在更改數(shù)據(jù)之前對(duì)數(shù)據(jù)的分析上。如在定位需要對(duì)哪些數(shù)據(jù)要進(jìn)行更改;如在更改事務(wù)遞交好的審核;如在考慮該怎么進(jìn)行更改。這個(gè)分析工作所占據(jù)的時(shí)間往往是大頭。

故筆者提醒數(shù)據(jù)庫(kù)管理員,在所有預(yù)備的數(shù)據(jù)分析完成之前,在用戶數(shù)據(jù)瀏覽的時(shí)候,不要啟動(dòng)事務(wù)。也就是說,在用戶更改數(shù)據(jù)的時(shí)候,仍然不是觸發(fā)更新事務(wù)的最佳時(shí)間。只有到用戶確認(rèn)無誤后,選擇“更新”按鈕,此時(shí),才可以觸發(fā)這個(gè)事務(wù)。并且,及時(shí)遞交或者回滾這個(gè)事務(wù)。如此,在事后審核的過程中,事務(wù)就不會(huì)繼續(xù)占用資源。

除了以上這些指導(dǎo)方針外,還有其他的一些小細(xì)節(jié)要注意。如盡量采用級(jí)別低的事務(wù)隔離級(jí)別,數(shù)據(jù)庫(kù)管理員要切記,不是所有的事務(wù)都要求串行事務(wù)隔離級(jí)別;如事務(wù)設(shè)計(jì)的簡(jiǎn)短一些;如在事務(wù)回退時(shí),可根據(jù)實(shí)際情況選擇回退全部事務(wù)或者是部分事務(wù)等等。另外,要特別注意在事務(wù)中排他鎖的副作用。在修改數(shù)據(jù)時(shí),為了保障數(shù)據(jù)的一致性,往往需要利用排它鎖保護(hù)修改過的行,以防止其他任何事務(wù)讀取這一行,并且必須把排它鎖控制到遞交或者回滾事務(wù)為止。為此,數(shù)據(jù)庫(kù)管理員在設(shè)計(jì)跟更新相關(guān)的事務(wù)時(shí),要合理選擇時(shí)機(jī)。讓事務(wù)在保障數(shù)據(jù)安全性的同時(shí),最大限度的降低其負(fù)面作用。

日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品第十页| 亚洲一级淫片| 精品中文在线| 国产不卡av一区二区| 精品黄色一级片| 色婷婷亚洲mv天堂mv在影片| 久久不见久久见免费视频7| 精品国产麻豆| 99精品视频精品精品视频| 免费日韩一区二区| 日韩中出av| 日韩精选在线| 国产剧情一区二区在线观看| 精品亚洲精品| 日韩不卡在线| 蜜臀av性久久久久蜜臀aⅴ流畅| 91欧美极品| 国产黄大片在线观看| 四虎4545www国产精品| 国产精品日韩| 国产日本久久| 欧美成人精品三级网站| 国产精品美女| 久久精品国内一区二区三区| 午夜久久美女| 国产欧美一区二区三区国产幕精品 | 国产99久久| 黄色av日韩| 国产麻豆一区| 久久久精品日韩| 一区二区亚洲视频| 国产精品videossex| 日本欧美国产| 久久www成人_看片免费不卡| 欧美日韩一区二区三区不卡视频 | 国产精品对白| 99国产成+人+综合+亚洲欧美| 天堂精品久久久久| 国产66精品| 免费看日韩精品| 久久久精品区| 欧美在线亚洲| 欧美a级一区二区| 亚洲一区黄色| 高清不卡一区| 亚洲精品女人| 日韩黄色大片| 欧美日韩一区二区三区四区在线观看 | 视频一区视频二区中文| 欧美精品导航| 欧美日韩色图| 六月丁香综合在线视频| 午夜在线精品偷拍| 国产一区二区三区四区二区| 蜜桃视频一区二区三区| 欧美aa在线观看| 青青国产精品| 六月丁香综合| 中文精品电影| 欧美福利一区| 久久久男人天堂| 国产美女久久| 亚洲黄色影院| 麻豆国产精品| 日韩激情视频网站| 一本一本久久| 久久裸体视频| 麻豆精品在线播放| 日本一区二区三区视频在线看| 伊人精品一区| 婷婷综合六月| caoporn视频在线| 欧美a级一区二区| 国产一精品一av一免费爽爽| 爽好多水快深点欧美视频| 不卡专区在线| 久久gogo国模啪啪裸体| 中文字幕视频精品一区二区三区 | 久久国产精品免费精品3p| 蜜臀久久久久久久| 精品欧美久久| 91精品蜜臀一区二区三区在线| 久久久久久夜| 高清一区二区三区av| 美女视频黄久久| 国产精品亚洲四区在线观看| 亚洲精品美女91| 亚洲欧美视频一区二区三区| 伊人久久婷婷| 羞羞答答国产精品www一本 | 波多视频一区| 91综合视频| 91免费精品| 日韩一区三区| 香蕉成人av| 国产在线日韩| 亚洲黄页一区| 视频一区二区三区中文字幕| 免费日韩av片| 日韩国产欧美三级| 日韩av中文字幕一区二区| 日韩美女国产精品| 久久激情五月婷婷| 欧美亚洲一区二区三区| 亚洲综合五月| 亚洲精品欧洲| 久久激情综合网| 国产黄色一区| 裤袜国产欧美精品一区| 日韩理论片av| 午夜国产欧美理论在线播放| 亚洲综合不卡| 日韩三级精品| 国产麻豆精品| 成人台湾亚洲精品一区二区| 亚洲风情在线资源| 日韩视频一区| 日韩一区二区三区高清在线观看| 奇米狠狠一区二区三区| 欧美中文高清| 欧美激情三区| 成人久久一区| 性色一区二区| 国产欧美日韩在线一区二区| 美女av在线免费看| 亚洲黄色影院| 久久精品xxxxx| 中文字幕在线高清| 欧洲亚洲一区二区三区| 在线观看亚洲精品福利片| 国产日韩欧美一区在线| 国产66精品| 久久福利精品| 国产精品videossex久久发布 | 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 日韩精品一二三四| 97久久精品| 日韩欧美二区| 国产精品三上| 国产精品99精品一区二区三区∴ | 国产精品夜夜夜| 久久精品国产亚洲夜色av网站| 婷婷精品在线| 日韩大片在线播放| 免费在线观看精品| 成人在线超碰| 久久亚洲专区| 97久久超碰| 亚洲国产成人精品女人| 国产日韩欧美一区二区三区| 久久婷婷av| 欧美日韩夜夜| 国产精品免费看| 成人国产综合| 亚洲人成网77777色在线播放| 麻豆国产精品| 麻豆亚洲精品| 日韩电影免费网址| 欧美在线观看天堂一区二区三区| 中文字幕高清在线播放| 日本不卡高清视频| 91精品一区二区三区综合在线爱| 91亚洲无吗| 精品中文一区| 91视频精品| 国产伦理一区| 视频在线观看国产精品| 九九色在线视频| 国产精品久久久久久久久久妞妞| 亚洲精品1区| 国产自产自拍视频在线观看| 91在线成人| 蜜臀久久99精品久久久久宅男| 热三久草你在线| 国产日本亚洲| 综合在线一区| 欧美va亚洲va日韩∨a综合色| 久久99国产精品视频| 日韩精品五月天| 麻豆亚洲精品| 波多野结衣一区| 日韩一区亚洲二区| 国产不卡av一区二区| 久久不卡国产精品一区二区| 日本aⅴ免费视频一区二区三区| 国产亚洲亚洲| 亚洲二区免费| 欧美aa一级| 伊伊综合在线| 成人午夜毛片| 久久亚洲国产精品尤物| 日韩福利视频网| 首页欧美精品中文字幕| 好看不卡的中文字幕| 久久精品电影| 日韩中文欧美| 丝袜诱惑一区二区| 日本一区二区高清不卡| 久久精品三级| 麻豆成人91精品二区三区|