不會(huì)的。臟數(shù)據(jù)最多會(huì)導(dǎo)致數(shù)據(jù)庫(kù)越來(lái)越大,不會(huì)導(dǎo)致阻塞,基于鎖的并發(fā)系統(tǒng)才會(huì)引起阻塞、當(dāng)一個(gè)連接控制了一個(gè)鎖,而另一個(gè)連接需要沖突的鎖類型時(shí),將發(fā)生阻塞。其結(jié)果是強(qiáng)制第二個(gè)連接等待,或在第一個(gè)連接上阻塞。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到南雄網(wǎng)站設(shè)計(jì)與南雄網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請(qǐng)域名、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋南雄地區(qū)。
事務(wù)隔離級(jí)別:一個(gè)事務(wù)對(duì)數(shù)據(jù)庫(kù)的修改與并行的另一個(gè)事務(wù)的隔離程度。
兩個(gè)并發(fā)事務(wù)同時(shí)訪問(wèn)數(shù)據(jù)庫(kù)表相同的行時(shí),可能存在以下三個(gè)問(wèn)題:
1、幻想讀:事務(wù)T1讀取一條指定where條件的語(yǔ)句,返回結(jié)果集。此時(shí)事務(wù)T2插入一行新記錄,恰好滿足T1的where條件。然后T1使用相同的條件再次查詢,結(jié)果集中可以看到T2插入的記錄,這條新紀(jì)錄就是幻想。
2、不可重復(fù)讀取:事務(wù)T1讀取一行記錄,緊接著事務(wù)T2修改了T1剛剛讀取的記錄,然后T1再次查詢,發(fā)現(xiàn)與第一次讀取的記錄不同,這稱為不可重復(fù)讀。
3、臟讀:事務(wù)T1更新了一行記錄,還未提交所做的修改,這個(gè)T2讀取了更新后的數(shù)據(jù),然后T1執(zhí)行回滾操作,取消剛才的修改,所以T2所讀取的行就無(wú)效,也就是臟數(shù)據(jù)。
為了處理這些問(wèn)題,SQL標(biāo)準(zhǔn)定義了以下幾種事務(wù)隔離級(jí)別
READ?UNCOMMITTED?幻想讀、不可重復(fù)讀和臟讀都允許。
READ?COMMITTED?允許幻想讀、不可重復(fù)讀,不允許臟讀
REPEATABLE?READ?允許幻想讀,不允許不可重復(fù)讀和臟讀
SERIALIZABLE?幻想讀、不可重復(fù)讀和臟讀都不允許
Oracle數(shù)據(jù)庫(kù)支持READ?COMMITTED?和?SERIALIZABLE這兩種事務(wù)隔離級(jí)別。所以O(shè)racle不支持臟讀
SQL標(biāo)準(zhǔn)所定義的默認(rèn)事務(wù)隔離級(jí)別是SERIALIZABLE,但是Oracle?默認(rèn)使用的是READ?COMMITTED
設(shè)置隔離級(jí)別使用?SET?TRANSACTION?ISOLATION?LEVEL?[READ?UNCOMMITTED|READ?COMMITTED|REPEATABLE?READ|SERIALIZABLE]
--?下面是oracle?設(shè)置SERIALIZABLE隔離級(jí)別一個(gè)示例:
左面是事務(wù)T1,右面是事務(wù)T2,因?yàn)門2級(jí)別為SERIALIZABLE,所以即使事務(wù)T1在提交了數(shù)據(jù)之后,事務(wù)T2還是看不到T1提交的數(shù)據(jù),幻想讀和不可重復(fù)讀都不允許了。
那如何能查看到T1新增的記錄呢? 上面T1和T2是并發(fā)執(zhí)行,在T1執(zhí)行insert的時(shí)候事務(wù)T2已經(jīng)開(kāi)始了,因?yàn)門2級(jí)別是SERIALIZABLE,所以T2所查詢的數(shù)據(jù)集是T2事務(wù)開(kāi)始前數(shù)據(jù)庫(kù)的數(shù)據(jù)。即事務(wù)T1在事務(wù)T2開(kāi)始之后的insert和update操作的影響都不會(huì)影響事務(wù)T2。現(xiàn)在重新開(kāi)啟一個(gè)事務(wù)T3 就可以看到T1新增的記錄了。
當(dāng)下列事件發(fā)生時(shí),事務(wù)就開(kāi)始了:
1、連接到數(shù)據(jù)庫(kù),并執(zhí)行第一條DML語(yǔ)句
2、前一個(gè)事務(wù)結(jié)束后,又輸入了另一條DML語(yǔ)句
A B 兩用戶,A 在10點(diǎn)更改X表的10到20 但一直未提交,B在10:30 要讀取X表的A更改的那條記錄的值,這時(shí)恰好B要讀取的塊在內(nèi)存里面(由于A更改需要把數(shù)據(jù)讀取到內(nèi)存)。這時(shí)候有幾種情況,假如此時(shí)ORACLE允許B讀取到A更改后但未提交的數(shù)據(jù),這時(shí)就發(fā)生了臟讀。另外就是不讓B讀取到A的更改,讀取到A更改以前的數(shù)據(jù),這時(shí)就發(fā)生了一致性讀。一致性讀會(huì)從現(xiàn)在的臟塊和undo記錄 構(gòu)造一個(gè)CR塊 構(gòu)造出來(lái)的CR塊與磁盤上的塊是一致的 我的理解是這樣的 當(dāng)然情況不只上面這一種,很多種情況 建議你看看 oracle隔離級(jí)別 相關(guān)的文章 應(yīng)該會(huì)有用
標(biāo)題名稱:oracle如何臟讀 Oracle咋讀
分享鏈接:http://chinadenli.net/article34/hghose.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站策劃、品牌網(wǎng)站制作、移動(dòng)網(wǎng)站建設(shè)、虛擬主機(jī)、App開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)