DTAは統計を作成することを推奨します


10

私はDTAを介してT-SQLクエリを実行しました。推奨事項の1つは、SQLコードファイル内の多くのクエリの一部である列の1つで統計を作成することです。

私の質問は、統計はパフォーマンスにどのように役立つのですか?

回答:


7

統計は、クエリ実行プランが作成されるときに使用されます。

クエリ最適化の統計は、テーブルまたはインデックス付きビューの1つ以上の列の値の分布に関する統計情報を含むオブジェクトです。クエリオプティマイザーはこれらの統計を使用して、クエリ結果のカーディナリティまたは行数を推定します。これらのカーディナリティの見積もりにより、クエリオプティマイザーは高品質のクエリプランを作成できます。たとえば、クエリオプティマイザーは、カーディナリティの見積もりを使用して、よりリソースを集中的に使用するインデックススキャン演算子の代わりにインデックスシークオペレーターを選択することで、クエリのパフォーマンスを向上させることができます。

詳細については、http://msdn.microsoft.com/en-us/library/ms190397.aspx参照してください。


1
素晴らしいリンクと説明。頻繁に照会されるテーブルで統計を作成することは常に有益ですか?
トーマス・ストリンガー

はい、最も読みやすいテーブルの統計が常に適切であることを確認する必要があります。テーブルが書き込み集中型の場合、たとえば毎晩統計を更新する必要がある可能性があります。
Alex_L 2011

2
@ Surfer513-注意してください:統計の作成は有害な影響を与える可能性があります。プランナーに提供する情報が優れていると、別の実行パスが選択される可能性があります。これは確率のゲームであるため、このパスは遅くなる可能性があります(たとえ一般的に高速である場合でも)。つまり、運用データベースで、実装する前にテストします。
ジャックはtopanswers.xyzを試してみると言う

7

DTAが単一列統計を推奨する場合、統計の自動作成をオフにする必要がありますか?自動作成では、述語で使用されているすべての列の統計が自動的に作成されるため、通常はオンのままにしておくことをお勧めします。このデータベースの自動更新のステータスを確認します。これも通常はオンになっているはずです。

DTAの最適な使用法の1つは、欠落している複数列の統計を特定することです。自動作成では作成されません。ただし、単一の列の場合、自動作成がそれらを処理します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.