Re: [問題] Oracle 8i 移轉到 SQL 2008

看板Database作者 (Alien)時間17年前 (2009/02/25 14:28), 編輯推噓5(502)
留言7則, 5人參與, 最新討論串4/7 (看更多)
※ 引述《Adonisy (堂本瓜一)》之銘言: : ※ 引述《adrianshum (Alien)》之銘言: : : 順便八卦問一問的. : : 以前工作有試過把 8i 移到好像是Sql2000 吧... : : 當時發覺有一個 Sql server 做得很不濟的事. : : 就是當有人在 read 某 record 的話, write access : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ : : 也會需要等的 (Oracle 則是 read 不會影響其他人 : ^^^^^^^^^^^^^ : : write). 當時令到一些在 oracle 不會出現問題的 : : code 在 sql server 出現 deadlock 的情況. : : 最新的 sql server 在方面有改善做法嗎? : 一直沒這問題啊... : 讀的 share lock是讀完就釋放 lock : 除非隔離層級調高.... 問題就在於讀會有 lock 在 oracle, connection 1 正在讀某 table, connection 2 是能直接 update. 反之亦然, connection A 在 update 某 table, 未 commit 之前, connect B 能直接讀沒問題. 但之前的 Sql Server 則是靠類似 reader writer lock 的方法去達成 READ COMMITED 這 isolation level. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.155.236.82

02/25 15:15, , 1F
如果不在意dirty read,SQL SERVER也有更低層級的lock
02/25 15:15, 1F

02/25 16:56, , 2F
當然在意. 一般大型程式都不可能用 Dirty Read 吧?..
02/25 16:56, 2F

02/25 17:22, , 3F
dirty read只是 no lock而以...也沒什麼啊~~~
02/25 17:22, 3F

02/25 19:20, , 4F
只是好奇未 commit前就讀資料不會有dirty read問題嗎?
02/25 19:20, 4F

02/25 19:22, , 5F
Oracle 是會讓你讀到未update 前的樣子, 而不是等
02/25 19:22, 5F

02/26 01:48, , 6F
SQL Server預設是Read Committed
02/26 01:48, 6F

03/28 11:08, , 7F
MS SQL在where條件後加上with(NOLOCK)
03/28 11:08, 7F
文章代碼(AID): #19fEKd84 (Database)
討論串 (同標題文章)
文章代碼(AID): #19fEKd84 (Database)