2011-09-19 55 views
9

有沒有辦法只顯示大於批量的1%的項目?SQL Server執行計劃:篩選以顯示瓶頸?

我試圖找到proc中的瓶頸,它包含循環和其他邏輯以及99%的結果執行計劃,我不在乎,但是很難在Management Studio中滾動並實際找到部件減慢速度。

回答

12

你看過SQL Sentry Plan Explorer嗎?這是一個100%免費的工具,可以與Management Studio集成,並在分析計劃時提供更多清晰度。一個非常簡單的例子說明了如何可以快速在任何圖形計劃重點最貴的(多個)節點上:

enter image description here

下載:

http://sqlsentry.net/plan-explorer/sql-server-query-view.asp

最近的一篇博客我寫的,根據大衆需求,幫助其他人說明Plan Explorer可以執行多少計劃:

http://sqlblog.com/blogs/aaron_bertrand/archive/2011/09/13/a-demo-kit-for-sql-sentry-plan-explorer.aspx

根據您的實際問題,它不會隱藏計劃中的低成本或零成本操作,但它確實會突出顯示紅色,橙色和黃色中最昂貴的節點;我們還強調查找和掃描,您還可以單獨顯示CPU + I/O,單獨CPU或I/O的成本百分比(在SSMS中只能使用組合)。您要查找的很多性能問題都是前端和中心,或者位於其中一個詳細選項卡上,而不是隱藏在「屬性」面板,奇特的工具提示中或根本不顯示。除了圖形計劃的增強外,您還可以通過在「語句樹」節點中進行排序,專注於循環中發生的特定語句(包含大量相關但成本較低的語句)。估計與實際行之間的差異(針對實際計劃)可突出顯示潛在的統計問題;通過鍵查找所需的列可以快速識別缺失的索引列(或不應該是SELECT *查詢);並且運行時與編譯參數可指出參數嗅探問題,您可能希望使用RECOMPILE,OPTIMIZE FOR或打開「爲臨時工作負載優化」。最後,與Management Studio不同的是,通過在工具中生成實際計劃,您可以非常輕鬆地生成運行時度量標準(持續時間,CPU,讀取等) - 使用本地工具您可以使用SET選項或使用分析器獲取這些度量標準 - 即使是那些你必須折扣將結果拿到客戶端的工作(Plan Explorer在服務器上運行查詢,但放棄了結果)。

+0

+1爲工具推薦。 – Icarus

1

我剛剛下載了最新版本的SSMS Tools Pack Addin,注意到它現在有一些新的功能可以在這方面提供幫助。

基本上,您可以配置百分比和度量標準(例如總體估計成本或估算的IO成本),並且超出此閾值的操作員按成本順序列在計劃左側,並且可以點擊以導航到特定運營商。

Screenshot

Execution Plan Analyser截屏更好的主意。