SQL Serverの統計のデフォルトのサンプルサイズは何ですか?


11

MSDNから:

サンプルオプション(SAMPLE, FULLSCAN, RESAMPLE)が指定されていない場合、クエリオプティマイザーはデータをサンプリングし、デフォルトでサンプルサイズを計算します。

統計のデフォルトのサンプルサイズを特定するにはどうすればよいですか?

MSDNを調べましたが、デフォルトのサンプルサイズを特定するための式や方法が見つかりませんでした。どこにも、自動統計更新をトリガーするための数式しかありません。どんなポインタも役に立ちます。

回答:


20

統計のデフォルトのサンプルサイズを特定するにはどうすればよいですか?

Blogs.msdnの記事から引用します

自動統計更新アルゴリズム:

したがって、自動更新統計は、テーブル行の500 + 20%の変更ごとに発生します。もちろん、SQL 2012では、SQRT(1000 *テーブル行)のアルゴリズムが改善されており、はるかに優れています。

起動すると、デフォルトのサンプリングレートが使用されます。サンプリングレートを計算するアルゴリズムは次のとおりです。

1)テーブルが8MB未満の場合、フルスキャンで統計を更新します。

2)テーブル> 8MBの場合、アルゴリズムに従います。スキャンするデータが多すぎないようにテーブルの行数が増えると、サンプリングレートが低下します。これは固定値ではありませんが、オプティマイザの制御下にあります。線形アルゴリズムでもありません。

例:1,000,000行の場合、30%のサンプリング率を使用しますが、行数が8,000,000に増加すると、サンプリング率が10%に減少します。これらのサンプリングレートはDBAの管理下にはありませんが、オプティマイザが決定します。

さらに理解するために私はあなたに読むことを勧めます

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