欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
數據庫事務(wù)和鎖(三)

數據庫事務(wù)和鎖(三)

[日期:2005-07-08]來(lái)源:CSDN  作者:[字體: ]

使用事務(wù)的考慮

在使用事務(wù)時(shí),原則上應該使事務(wù)盡可能得短并且要避免事務(wù)嵌套。事務(wù)應該盡可能得短,這是因為比較長(cháng)的事務(wù)增加了事務(wù)占用數據的時(shí)間,使其它必須等待訪(fǎng)問(wèn)該事務(wù)鎖定數據的事務(wù),延長(cháng)了等待訪(fǎng)問(wèn)數據的時(shí)間。在使用事務(wù)時(shí),為了使事務(wù)盡可能得短,應該采取一些相應的方法。為了最小化時(shí)間,在使用一些Transact-SQL語(yǔ)句時(shí),一定要非常小心。例如,當使用循環(huán)語(yǔ)句WHILE時(shí),一定要事先確認循環(huán)的長(cháng)度和占用的時(shí)間,使這種循環(huán)在完成相應的功能之前,一定要確保循環(huán)盡可能得短。在開(kāi)始事務(wù)之前,一定要了解需要用戶(hù)交互式操作才能得到的信息。這樣,在事務(wù)的進(jìn)行過(guò)程中,就可以避免進(jìn)行一些耗費時(shí)間的交互式操作,縮短事務(wù)進(jìn)程的時(shí)間。在一個(gè)用戶(hù)定義的事務(wù)中,應該盡可能地使用一些數據操縱語(yǔ)言,例如INSERT、UPDATE和DELETE語(yǔ)句,因為這些語(yǔ)句主要是操縱數據庫中的數據。而對于一些數據定義語(yǔ)言,應該盡可能地少用或者不用,因為這些數據定義語(yǔ)言的操作既占用比較長(cháng)的時(shí)間,又占用比較多的資源,并且這些數據定義語(yǔ)言的操作通常不涉及到數據,所以應該在事務(wù)中盡可能地少用或者不用這些操作。另外,在使用數據操縱語(yǔ)言時(shí),要注意,一定要在這些語(yǔ)句中使用條件判斷語(yǔ)句,使得這些數據操縱語(yǔ)言涉及到盡可能少的記錄,從而縮短事務(wù)的處理時(shí)間。

在嵌套事務(wù)時(shí),也要注意一些問(wèn)題。雖然說(shuō),在事務(wù)中間嵌套事務(wù)是可能的,并不影響SQL Server處理事務(wù)的性能。但是,實(shí)際上,使用嵌套事務(wù),除了把事務(wù)搞得更加復雜之外,并沒(méi)有這么明顯的好處。因此,不建議使用嵌套事務(wù)。

事務(wù)的類(lèi)型

根據系統的設置,可以把事務(wù)分成兩種類(lèi)型。一種是系統提供的事務(wù),另一種是用戶(hù)定義的事務(wù)。系統提供的事務(wù)是指在執行某些語(yǔ)句時(shí),一條語(yǔ)句就是一個(gè)事務(wù)。這時(shí)要明確,一條語(yǔ)句的對象既可能是表中的一行數據,也可能是表中的多行數據,甚至是表中的全部數據。因此,只有一條語(yǔ)句構成的事務(wù)也可能包含了多行數據的處理。例如執行下面這條數據操縱語(yǔ)句:

UPDATE  authors

SET state = ‘CA’

這是一條語(yǔ)句,這條語(yǔ)句本身就構成了一個(gè)事務(wù)。這條語(yǔ)句由于沒(méi)有使用條件限制,那么這條語(yǔ)句就是修改表中的全部數據。所以這個(gè)事務(wù)的對象,就是修改表中的全部數據。如果authors表中有1000行數據,那么這1000行數據的修改要么全部成功,要么全部失敗。

另外一種事務(wù),是用戶(hù)明確定義的事務(wù)。在實(shí)際應用中,大多數的事務(wù)處理就是采用了用戶(hù)定義的事務(wù)來(lái)處理。在開(kāi)發(fā)應用程序時(shí),可以使用BEGIN TRANSACTION語(yǔ)句來(lái)定義明確的用戶(hù)定義的事務(wù)。在使用用戶(hù)定義的事務(wù)時(shí),一定要注意兩點(diǎn):一是事務(wù)必須有明確的結束語(yǔ)句來(lái)結束。如果不使用明確的結束語(yǔ)句來(lái)結束,那么系統可能把從事務(wù)開(kāi)始到用戶(hù)關(guān)閉連接之間的全部操作都作為一個(gè)事務(wù)來(lái)對待。事務(wù)的明確結束可以使用這樣兩個(gè)語(yǔ)句中的一個(gè):COMMIT語(yǔ)句和ROLLBACK語(yǔ)句。COMMIT語(yǔ)句是提交語(yǔ)句,將全部完成的語(yǔ)句明確地提交到數據庫中。ROLLBACK語(yǔ)句是取消語(yǔ)句,該語(yǔ)句將事務(wù)的操作全部取消,即表示事務(wù)操作失敗。

還有一種特殊的用戶(hù)定義的事務(wù),這就是分布式事務(wù)。前面提到的事務(wù)都是在一個(gè)服務(wù)器上的操作,其保證的數據完整性和一致性是指一個(gè)服務(wù)器上的完整性和一致性。但是,如果一個(gè)比較復雜的環(huán)境,可能有多臺服務(wù)器,那么要保證在多服務(wù)器環(huán)境中事務(wù)的完整性和一致性,就必須定義一個(gè)分布式事務(wù)。在這個(gè)分布式事務(wù)中,所有的操作都可以涉及對多個(gè)服務(wù)器的操作,當這些操作都成功時(shí),那么所有這些操作都提交到相應服務(wù)器的數據庫中,如果這些操作中有一條操作失敗,那么這個(gè)分布式事務(wù)中的全部操作都被取消。

鎖和鎖的作用

鎖就是防止其他事務(wù)訪(fǎng)問(wèn)指定的資源的手段。鎖是實(shí)現并發(fā)控制的主要方法,是多個(gè)用戶(hù)能夠同時(shí)操縱同一個(gè)數據庫中的數據而不發(fā)生數據不一致現象的重要保障。一般來(lái)說(shuō),鎖可以防止臟讀、不可重復讀和幻覺(jué)讀。臟讀就是指當一個(gè)事務(wù)正在訪(fǎng)問(wèn)數據,并且對數據進(jìn)行了修改,而這種修改還沒(méi)有提交到數據庫中,這時(shí),另外一個(gè)事務(wù)也訪(fǎng)問(wèn)這個(gè)數據,然后使用了這個(gè)數據。因為這個(gè)數據是還沒(méi)有提交的數據,那么另外一個(gè)事務(wù)讀到的這個(gè)數據是臟數據,依據臟數據所做的操作可能是不正確的。不可重復讀是指在一個(gè)事務(wù)內,多次讀同一數據。在這個(gè)事務(wù)還沒(méi)有結束時(shí),另外一個(gè)事務(wù)也訪(fǎng)問(wèn)該同一數據。那么,在第一個(gè)事務(wù)中的兩次讀數據之間,由于第二個(gè)事務(wù)的修改,那么第一個(gè)事務(wù)兩次讀到的的數據可能是不一樣的。這樣就發(fā)生了在一個(gè)事務(wù)內兩次讀到的數據是不一樣的,因此稱(chēng)為是不可重復讀?;糜X(jué)讀是指當事務(wù)不是獨立執行時(shí)發(fā)生的一種現象,例如第一個(gè)事務(wù)對一個(gè)表中的數據進(jìn)行了修改,這種修改涉及到表中的全部數據行。同時(shí),第二個(gè)事務(wù)也修改這個(gè)表中的數據,這種修改是向表中插入一行新數據。那么,以后就會(huì )發(fā)生操作第一個(gè)事務(wù)的用戶(hù)發(fā)現表中還有沒(méi)有修改的數據行,就好象發(fā)生了幻覺(jué)一樣。


本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
SQL數據庫完全手冊 統一教學(xué)網(wǎng)
數據庫 事務(wù)并發(fā)控制
網(wǎng)絡(luò )數據庫安全機制
chp12
數據庫的基本原理回顧
第9章 數據庫保護技術(shù)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久