的在Microsoft SQL Server中,我使用READ_COMMITTED_SNAPSHOT ISOLATION甲骨文相當於SQL Server的快照隔離
ALTER DATABASE MyDatabase
SET ALLOW_SNAPSHOT_ISOLATION ON
ALTER DATABASE MyDatabase
SET READ_COMMITTED_SNAPSHOT ON
在會話1,更新4000校長到5000
BEGIN TRAN
Update MyTable Set Principal=5000 Where InvestorId=10
現在在第二節,我說
Select Principal from MyTable where InvestorId=10
我得到4000,因爲會話1交易沒有提交。
如果我不使用READ_COMMITTED_SNAPSHOT隔離模式,並使用
- 讀已提交隔離模式,那麼我的第二場將繼續等待
- 如果我使用READ_UNCOMMITTED隔離模式,然後我的會議2將給予5000(相當於在select語句中使用nolock)
在Oracle中,如果我執行等效命令集,默認情況下它的行爲就好像設置了READ_COMMITTED_SNAPSHOT隔離模式。
我讀過SNAPSHOT隔離模式在更新完成之前寫入tempdb的微軟文章。
- Oracle如何在默認情況下實現此目的?
- 它是否也寫入磁盤?它會導致I/O問題?
- Oracle中的默認鎖定級別與SQL Server不同嗎?
在此先感謝您的幫助和時間。
沒有模擬在Oracle「READ_UNCOMMITTED隔離模式」。 –
通過'READ_UNCOMMITTED ISOLATION'你是否指Oracle中的'POST'? – Annjawn