私はDTAを介してT-SQLクエリを実行しました。推奨事項の1つは、SQLコードファイル内の多くのクエリの一部である列の1つで統計を作成することです。
私の質問は、統計はパフォーマンスにどのように役立つのですか?
私はDTAを介してT-SQLクエリを実行しました。推奨事項の1つは、SQLコードファイル内の多くのクエリの一部である列の1つで統計を作成することです。
私の質問は、統計はパフォーマンスにどのように役立つのですか?
回答:
統計は、クエリ実行プランが作成されるときに使用されます。
クエリ最適化の統計は、テーブルまたはインデックス付きビューの1つ以上の列の値の分布に関する統計情報を含むオブジェクトです。クエリオプティマイザーはこれらの統計を使用して、クエリ結果のカーディナリティまたは行数を推定します。これらのカーディナリティの見積もりにより、クエリオプティマイザーは高品質のクエリプランを作成できます。たとえば、クエリオプティマイザーは、カーディナリティの見積もりを使用して、よりリソースを集中的に使用するインデックススキャン演算子の代わりにインデックスシークオペレーターを選択することで、クエリのパフォーマンスを向上させることができます。
詳細については、http://msdn.microsoft.com/en-us/library/ms190397.aspxを参照してください。
DTAが単一列統計を推奨する場合、統計の自動作成をオフにする必要がありますか?自動作成では、述語で使用されているすべての列の統計が自動的に作成されるため、通常はオンのままにしておくことをお勧めします。このデータベースの自動更新のステータスを確認します。これも通常はオンになっているはずです。
DTAの最適な使用法の1つは、欠落している複数列の統計を特定することです。自動作成では作成されません。ただし、単一の列の場合、自動作成がそれらを処理します。