2017-06-05 105 views
0

我想使用SELECT WITH NOLOCK,我想使用SELECT WITH NOLOCK查詢的表沒有更新查詢,我想獲取的數據少於當前插入的記錄。我想使用NOLOCK,因爲有時候我我在SELECT查詢中遇到了超時異常。我認爲這是因爲表將由LOCKED由插入查詢不斷運行和SELECT查詢必須等待很長時間,所以它給出了超時錯誤。選擇查詢沒有鎖

因此,請建議我應該在這裏使用NOLOCK,我已閱讀一些文章是關於未提交的交易,他們建議不要使用NOLOCK

+1

**嘗試,**已經回答您的問題[這裏](https://stackoverflow.com/questions/210171/effect-of-nolock-hint-in-select-statements) –

回答

0

正如文檔(Table Hints on MSDN Docs)中提到的那樣,當使用NOLOCK提示時,您可以看到尚未提交的結果(即由事務提交)。

通過使用此提示,您應該瞭解這些問題,但是如果它不影響您的邏輯,則可以使用它。

0

您不僅可以「看到尚未提交的結果」,但可以讀取一些行兩次或根本不讀取它們。所以,如果不知道你的表結構和查詢,我們不會建議你。如果即使在讀取「數據少於當前插入記錄」的情況下被阻止,您可能在桌面上沒有適當的索引?