Sql-Server

幫助改進 SQL Server 2005 查詢執行時間

  • December 20, 2016

我的一個儲存過程執行時間很長(平均大約 4 到 7 分鐘)。我想讓它跑得更快。

我正在查看執行計劃,其中有兩件事佔了大部分成本。第一個代表 68% 的成本,其中一個主表的*“聚集索引掃描”*用於報告。該表有兩列的主鍵和 2.000.000 條記錄。

要求第二高的任務佔*“合併連接”*(左外連接)成本的 26%。這是我上面提到的通過外鍵連接到上表中兩列主鍵中的一列的表。

我檢查了這些表的索引物理統計和索引狀況良好。

我可以做些什麼來提高這個儲存過程的性能?我需要在這些表上創建新索引嗎?set transaction isolation level read uncommitted語句是否有助於提高性能?

如果您發布架構和查詢等,除了其他 3 個答案之外,這將很有用。

無論如何,一些連結,來自 Simple-Talk。好東西。

您的方法是正確的:聚集索引掃描基本上會遍歷整個表,這是您要避免的。查看聚集索引掃描的細節:應該有一個 WHERE 謂詞告訴你掃描搜尋的是哪個欄位。確保此欄位(或這些欄位,如果有多個)上有索引,然後再試一次。

引用自:https://dba.stackexchange.com/questions/12465