Re: [問題] Oracle 8i 移轉到 SQL 2008
※ 引述《trueQoo (幸運之神)》之銘言:
: ※ 引述《adrianshum (Alien)》之銘言:
: : 問題就在於讀會有 lock
: : 在 oracle, connection 1 正在讀某 table,
: : connection 2 是能直接 update. 反之亦然,
: : connection A 在 update 某 table, 未 commit
: : 之前, connect B 能直接讀沒問題.
: : 但之前的 Sql Server 則是靠類似 reader writer lock
: : 的方法去達成 READ COMMITED 這 isolation level.
: 讀,在每個資料庫系統中,都有 lock
: 這點 oracle也是有的....
: oracle ,connection1 讀某 table,connection2能直接 update
: 這點 sql server本來就可以啊!!
舉個實際例子好了
connection A, update T1, 然後讀 T2
connection B, update T2, 然後讀 T1
oracle 中, 這是很正常也能正常通過的.
但在 SqlServer 中, 則會造成 deadlock
(因為兩者的 read 皆在等候對方的 write
完成)
本來在 oracle 要避免 deadlock 只要處理 CUD
的部份, SqlServer 則是 CRUD 都要.
: 至於 connection A在 update 沒 commit , connect B 在 SQL Server中預設不能讀
: 這是 ANSI SQL定義的 isolation level,和 SQL Server無關
read committed這 isoation level 定義的是
"A 的東西沒 commit, B 不會讀到未 commit 的部份" ,
還是
"A 的東西沒 commit, B 讀到有未 commit 的東西就要等到 A commit 才能繼續" ?
我想是前者吧?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.155.236.82
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 6 之 7 篇):