2009-09-30 46 views
1

我正在鏈接到第三方SQL數據庫,我只選擇信息,從不更新/刪除。SQL 2008 - 我是否在簡單的select語句中使用NOLOCK?

這個第三方告訴我,當我從他們的數據庫中選擇時,總是使用NOLOCK。我和其他一些人說,不用擔心使用它。

如果我的select語句要在1秒內執行,WITH(NOLOCK)會影響很多嗎?

我應該這樣做只是爲了好的做法嗎?

回答

3

NOLOCK將有助於防止您的查詢放慢供應商的應用程序。但是,您可能會收到不好的結果,請參閱:http://sqlblogcasts.com/blogs/tonyrogerson/archive/2006/11/10/1280.aspx或者只是google「nolock的危險」

+1

好點。如果只有好處並且沒有成本,查詢優化器可能會自動爲您做這件事,並且沒有選項。對於你應該總是/永遠不會做的事情,要小心一般的規則。 – JohnFx 2009-09-30 15:53:54

+0

@JohnFx:說得好! – gbn 2009-09-30 16:05:00

0

快速回答:

如果從一個表,這是非常繁忙的(你可能不知道這個第三方數據庫的繁忙程度),那麼我會慎之又慎的一側,並使用鎖定提示選擇。

我可以從經驗告訴你,在繁忙的事務數據庫,鎖定提示工作,並可能是一個大的貢獻者得到你的查詢下第二(以及其他優化)。