2017年11月18日 星期六

WITH(NOLOCK)

SQL 語法中在 table 名稱後加 WITH(NOLOCK),可防止查詢時因資料變動而卡住,提升查詢速度,但取出的資料並不一定是最新的
若查詢 JOIN 多個 table,則每個 table 名稱後都需加 WITH(NOLOCK)
若有資料正在被更動,查詢也不需等更動完才能顯示
壞處是取出的資料不一定是正確的,正在被更動的資料就會顯示較舊的數值

SELECT sum(amt)
FROM NLEdiTax WITH(NOLOCK)
WHERE IDATE>='2013.03.01' and IDATE <='2013.03.15'
SELECT COUNT(UserID)
FROM EMPLOYEE WITH (NOLOCK)
            JOIN WORKING_GROUP WITH (NOLOCK) ON 
            EMPLOYEE.UserID = WORKING_GROUP.UserID 

引用資料
隨手寫寫筆記-提升查詢效率和避免LOCK發生

沒有留言:

張貼留言