2014-03-06 65 views
1

我們有一張表,我們已經使用鎖SELCT TOP 1 ...(WITH(UPDLOCK,READPAST))實現了一個排隊系統。直到最近,當我們將列添加到與第一個表具有FK關係的另一個表時,它一直工作得很好。我必須在使用鎖的查詢中添加,我們在第二個表上進行連接。在SQL Server上鎖定

現在,在添加列後,我們似乎在運行查詢時會出現非常頻繁的鎖定和超時。

這是否有可能與新欄目有關?可以做些什麼來解決?

我們使用Telerik ORM來運行存儲過程。

回答

1

如果你加入另一張桌子,你可能也需要那張桌子上的表格提示。是否有其他交易觸及其他表格?如果是這樣,那麼顯然會增加死鎖的機會。

對於在SQL Server表中實現隊列,我發現this answer是一個很好的參考,這表明WITH (ROWLOCK, READPAST, UPDLOCK)。您可能會將鎖升級到ROW之外,這可能會導致您遇到的問題。嘗試添加該提示,看看它是否能解決問題。還要確保你只有在其他查詢觸發該表或被引用的表時纔會鎖定ROW。