SQL Server での実行計画の使用法は何ですか? これらの計画はいつ役に立ちますか?
4 に答える
これらの計画は、SQL Server がクエリを実行する方法を記述します。これは、SQL Server クエリ オプティマイザーによるコストベースのアルゴリズムの結果であり、予想される最良の方法で最終結果を得る方法を計画します。
クエリで時間が費やされている場所、インデックスが使用されているかどうか、それらのインデックスで実行されているプロセスの種類 (スキャン、シーク) などが表示されるため、便利です。
そのため、クエリのパフォーマンスが低い場合、実行計画によって最もコストのかかる部分が強調表示され、最適化が必要なものを確認できます (たとえば、インデックスが見つからない、クエリが非効率的に作成され、シークではなくインデックス スキャンが発生する可能性があります)。 )。
特定のクエリでパフォーマンス プロファイリングを実行する必要がある場合。
SQL Server Query Execution Plan Analysisをご覧ください。
特定のクエリのパフォーマンスを分析する場合、最適な方法の 1 つは、クエリ実行プランを表示することです。クエリ実行プランは、SQL Server クエリ オプティマイザーが特定のクエリを実際に実行した (または実行する) 方法の概要を示します。この情報は、特定のクエリの実行速度が遅い理由を調べるときに非常に役立ちます。
実行時間の長いクエリでボトルネックが発生している場所を特定するのに役立ちます。サーバーが複雑なクエリをどのように実行するかを知るだけで、パフォーマンスを大幅に向上させることができます。
私の記憶が正しければ、パフォーマンスを向上させるもう 1 つの方法であるインデックス作成の適切な候補も識別されます。
すべてのクエリが高速に実行されると、すべてがうまくいき、実行計画はそれほど重要ではなくなります。ただし、何かが遅く実行されている場合、それらは非常に重要です。これらは主に、遅い SQL を調整 (高速化) するために使用されます。実行計画がなければ、SQL を高速化するために何を変更すればよいかを推測するだけです。
これが彼らがあなたを助けることができる最も簡単な方法です. スロー クエリを実行し、SQL Server Management Studio クエリ ウィンドウで次の操作を行います。
1) 次のコマンドを実行します。
SET SHOWPLAN_ALL ON
2) 遅いクエリを実行する
3) クエリは実行されませんが、実行計画は返されます。
4) 列の出力を調べて、この列のテキスト内PhysicalOp
の単語を探します。通常、これは速度低下の原因となっているクエリの一部です。出力のこの行に関して結合とインデックスの使用状況を分析し、スキャンをなくすことができれば、通常はクエリの速度が向上します。SCAN
出力には有用な列 (TotalSubTreeCost など) が含まれている可能性があります。実行計画の読み方や遅いクエリの調整方法を学習するにつれて、これらの列に慣れることができます。