2010年11月10日

避免資料表更新時鎖定, 加快查詢速度

在.net 2.0預設insert是Table Lock, 所以下select時可能會被鎖, 以下是其情境:

如果[程式1], 裡進行對table A 作insert 或是 update

正好[程式2] select table A 的資料 , 因為[程式1]尚未更新完成, 會造成[程式1]等待。

不考慮dirty read , [程式1]可以下以下指令來加快速度。

Select * 
from aTable with (NOLOCK)


Reference:

Deadlock

SQL Server Lock Contention Tamed: The Joys Of NOLOCK and ROWLOCK

http://blog.darkthread.net/blogs/darkthreadtw/archive/2008/07/31/39.aspx

沒有留言:

張貼留言