Share via


分析指令碼效能

 

您可以使用 SQL Server Data Tools 所提供的工具,判斷是否能提升查詢、預存程序或指令碼的效能。例如,監視用戶端統計資料 (例如常用查詢的回應時間),您可以判斷是否需要變更資料表的查詢或索引。這類統計資料可以包含用戶端執行時間、查詢設定檔、以及傳送和接收的封包/位元組。

此外,最好還要分析應用程式查詢和應用程式對資料庫提交的更新,以及這些查詢與更新如何跟資料庫與資料庫結構描述內含的資料互動,才能處理某些效能問題。執行計畫會以圖形方式顯示 SQL Server 查詢最佳化工具所選的資料擷取方法,並顯示特定陳述式與查詢的執行成本。因此,執行計畫可以幫助您了解 SQL Server 處理 SQL 查詢的方式,並判斷導致效能降低的因素。

使用用戶端統計資料

在 Transact-SQL 編輯器中執行指令碼或查詢時,您可以選擇收集用戶端統計資料,例如執行的應用程式設定檔、網路和時間統計資料。這種衡量標準可讓您衡量指令碼的效率,或評定不同的指令碼。

若要切換用戶端統計資料的收集,請在 Transact-SQL 編輯器處於開啟狀態時,指向 [資料] 功能表上的 [Transact-SQL 編輯器],再依序按一下 [執行設定][包括用戶端統計資料]。或者,按一下 編輯器工具列上的 Transact-SQL[包括用戶端統計資料] 按鈕 (右邊數來第五個按鈕),或以滑鼠右鍵按一下 Transact-SQL 編輯器再選取 [執行設定][包括用戶端統計資料]。請注意,您必須先開啟這個功能再執行查詢,這樣才能收集查詢的統計資料。

如果開啟用戶端統計資料,查詢執行時 [統計資料] 索引標籤會出現在 [訊息] 索引標籤旁邊。如果關閉用戶端統計資料,[統計資料] 索引標籤就不會出現。來自後續查詢執行的統計資料會與平均值一起列出。

如需有關收集的統計資料的詳細資訊,請參閱查詢視窗統計資料窗格這個主題的<用戶端統計資料索引標籤>一節。

使用執行計畫

執行計畫會顯示資料庫引擎如何巡覽資料表,以及如何使用索引為查詢或其他 DML 陳述式 (如更新) 存取或處理資料。這種圖形式的方法,對於了解查詢的效能特性非常有幫助。

在 Transact-SQL 編輯器中開啟包含要分析之查詢的 Transact-SQL 指令碼。然後,您可以反白顯示想要檢閱的程式碼,並且按一下編輯器工具列上的 [顯示估計執行計畫] 按鈕,選擇顯示估計執行計畫。如果按一下 [顯示估計執行計畫],則不會執行 Transact-SQL 查詢或批次,而是會剖析指令碼,並顯示若是真的執行查詢則資料庫引擎最有可能使用的查詢執行計畫。

在剖析或執行指令碼之後,按一下 [執行計畫] 索引標籤,以查看執行計畫輸出的圖形表示。

圖形執行計畫輸出是從右向左讀,從上向下讀。在被分析的批次中的每個查詢都會顯示出來,包括每個查詢佔批次處理總成本的百分比在內。若要檢視其他資訊 (例如每個步驟的成本與操作),請將滑鼠停留在圖形計畫中的<邏輯與實體運算子圖示>上。

若要改變執行計畫的顯示,請以滑鼠右鍵按一下 [執行計畫],然後選取 [放大][縮小][自訂顯示比例][縮放至適當比例][放大][縮小] 可讓您以固定量放大或縮小執行計畫。[自訂顯示比例] 可讓您定義自己的顯示倍率,例如縮放至百分之 80。  [縮放至適當比例] 可調整執行計畫以符合結果窗格。

執行計畫可以先儲存起來,以備日後再重新開啟以供檢查之用。若要這麼做,請以滑鼠右鍵按一下 [執行計畫],再選取 [另存執行計畫為]。之後,您便可以在 Visual Studio 中開啟該計畫,就像開啟任何其他類型的檔案一樣。

使用程式碼分析

您可以使用程式碼分析,找出指令碼中的潛在問題,例如設計、命名和效能問題。  資料庫專案的規則會組織成預先定義的規則集,並且以特定方面為目標,您可以在 [專案屬性] 屬性頁的 [程式碼分析] 索引標籤中啟用或停用任何規則。在相同索引標籤中,您可以指定要在每次建置專案時自動執行程式碼分析,或指定是否將警告視為錯誤。

若要手動使用程式碼分析,請以滑鼠右鍵按一下 [方案總管] 中的專案,再選取 [執行程式碼分析]。程式碼分析警告列在 [錯誤清單] 視窗中。按兩下警告即可巡覽至有問題的原始程式碼,而且使用 [顯示錯誤說明] 關聯式功能表也可以檢視警告的其他資訊與可能的修正方法。

如需有關程式碼分析的詳細資訊,請參閱分析資料庫程式碼以提升程式碼品質