2010-03-03 34 views

回答

1

當你的查詢全部運行得很快時,所有的東西都是好的,執行計劃並不重要。但是,當某些東西運行緩慢時,它們非常重要。它們主要用於幫助調整(加速)緩慢的SQL。如果沒有執行計劃,您只需猜測要更改哪些內容即可使SQL更快。

以下是他們可以幫助您的最簡單的方法。以一個緩慢的查詢,並做在SQL Server Management Studio中的查詢窗口如下:

1)運行命令:

SET SHOWPLAN_ALL ON 

2)運行緩慢的查詢

3)你的查詢將不會運行,但執行計劃將被返回。

4)看通過在此列中的PhysicalOp列輸出爲字SCAN任何文本中,這是通常導致該減速查詢的一部分。分析您的連接和索引使用情況(與輸出的這一行相關),如果您可以消除掃描,則通常會提高查詢速度。

在輸出中有可能有用的列(TotalSubTreeCost等),您將在學習如何閱讀執行計劃和調整慢查詢時熟悉它們。

+0

你是否意味着所有 - 而不是 - 第一行的屁股:) – 2010-03-03 12:45:43

+0

@Fadrian,是的我做了 – 2010-03-03 12:47:36

1

當您需要對特定查詢執行性能分析時。

看一看SQL Server Query Execution Plan Analysis

當談到時間來分析特定查詢的性能 ,最好的方法之一 是查看 查詢執行計劃。查詢 執行計劃概述了SQL 服務器查詢優化器實際運行 (或將運行)特定查詢的方式。這 信息,如果它非常有價值,它 時間來找出爲什麼特定的 查詢運行緩慢。

1

這有助於確定長時間運行的查詢中發生哪些瓶頸。只需知道服務器如何執行復雜查詢,就可以獲得令人印象深刻的性能改進。

如果我沒有記錯的話,它也可以確定好索引的候選對象,這是提高性能的另一種方法。

1

這些計劃描述了SQL Server如何執行您的查詢。這是SQL Server查詢優化器基於成本的算法的結果,它提出了一個計劃,以便以最佳方式達到最終結果。

這是有用的,因爲它會告訴你,時間在查詢中度過的,是否正在使用或沒有索引,正在對這些指標做了什麼類型的進程(掃描,搜索)等

所以如果您的查詢執行效果不佳,那麼執行計劃將突出顯示最耗時的部件,並允許您查看需要優化的內容(例如,可能是缺少的索引,可能是寫入效率低下的查詢導致索引掃描而不是查找) 。