SQL Serverを初めて使用するので、最初のクエリを調整したいと思います。
SQL Server 20xxで、「推定実行プランの表示」と「実際の実行プランを含める」の違いは何ですか?
SQL Serverを初めて使用するので、最初のクエリを調整したいと思います。
SQL Server 20xxで、「推定実行プランの表示」と「実際の実行プランを含める」の違いは何ですか?
回答:
推定実際にクエリを実行せず-実行計画は、単にSQL Serverが持っている統計に基づいて生成されます。クエリオプティマイザーは、クエリおよびデータ分布などに関するすべての情報に基づいて、このクエリで最も可能性が高いことを尋ねられます。
これは問題なく機能し、クエリを実行する必要はありません(時間がかかる可能性があります)が、統計が古くなっていると、計画が大幅にゆがむ可能性があります。
実際の実行計画はまさにそれである- 実際に、実際にクエリを実行するときに使用した実行計画。これにより、「古くなった」統計などのヒントになる可能性のあるものが表示されます。ただし、これを取得するには、クエリを実行する必要があります。これには時間がかかる場合があります。
推定計画は、クエリを実際に実行せずにサーバーで実行する方法を提供します。これにより、より適切な計画を作成するために調整する必要があるか、推定された計画に問題がないかがわかります。
実際の計画は、サーバーがクエリを実行したときに実際に何が起こったかを示します。これには、テーブルからの実際の行数、ソートがあった場合に使用されたメモリの量などの詳細が含まれます。実行中にどの程度の並列処理が使用されたか。
しかし、最良のことは、実際の実行計画で確認できる「推定行数」と「実際の行数」の違いを見ることです。これらの2つの値が近いほど、統計は最新であり、特定の統計ではこれが最良の計画ですが、これらの値に大きな差異がある場合は、統計が最新ではない可能性があるため、これは最良の計画。この場合、統計を更新することで、より適切な推定計画、つまり実際の計画を生成できます。