2011-06-19 51 views
1

我發現了一個SQL查詢超時一個簡單的查詢:如何在SQL Server中調試查詢超時?

delete from Prices where Id=123 

Id是一個PK列。服務器沒有處於高負載狀態 - 其他幾個查詢出現問題。我如何調試這種情況?我使用SQL Server Express 2008.

謝謝!

UPD1將表格重命名以匹配真實姓名。

+1

查看查詢計劃。 – Oded

+0

看起來沒什麼特別的。也許我完全不瞭解它。聚簇索引掃描,聚簇索引刪除,半連接,斷言和刪除 –

回答

2

如果您認爲該查詢在另一個上被阻止,您可以按照this blog post中的查詢進行操作,該查詢顯示如何識別阻止的查詢。一旦你弄清楚了,你可以調查問題的查詢。

+0

感謝您的鏈接。解決問題的最佳策略是什麼?在catch中執行一些語句(TimeOutException)? –

+1

當您認爲您的查詢超時時,請運行來自我鏈接到的站點的診斷查詢。如果問題的原因阻止該查詢可能返回結果,則表明查詢被阻止。您將能夠看到RequestingText和BlockingText,它可以幫助您找出導致阻塞的兩個查詢在做什麼。 –

+0

謝謝!會嘗試。 –

0

你有一個名爲table?這可能是問題所在。你如何執行查詢?通過SQL Studio?存儲過程? SqlCommand的?

+0

編號表名稱是價格。我使用Spring.NET HibernateTemplate.Delete。也許Spring.NET有些問題... –

+0

更新了我的問題。 –