2011年1月5日水曜日

SQL Serverのクエリプランをクエリと一緒に取得する便利スクリプト

元ネタはこちら:SQL SERVER – Get Query Plan Along with Query Text and Execution Count

稼働中のSQL Serverの状態をチェックしたくなることはままあることで、パフォーマンスを計る上でも各オブジェクトのクエリプランやら実行回数を知っておくのは悪くない。というわけで下記クエリを実行すると下図の結果が得られる。
(Where句をいじることで必要なオブジェクトのみ参照もできる)

SELECT cp.objtype AS ObjectType,
OBJECT_NAME(st.objectid,st.dbid) AS ObjectName,
cp.usecounts AS ExecutionCount,
st.TEXT AS QueryText,
qp.query_plan AS QueryPlan
FROM sys.dm_exec_cached_plans AS cp
CROSS APPLY sys.dm_exec_query_plan(cp.plan_handle) AS qp
CROSS APPLY sys.dm_exec_sql_text(cp.plan_handle) AS st
--WHERE OBJECT_NAME(st.objectid,st.dbid) = 'YourObjectName'

上記のクエリからこういう結果がでる。

上図でQueryPlanのリンクをクリックすると下図のクエリプランが表示される。

0 件のコメント:

コメントを投稿