1
奇妙な密度はサンプリングされた統計をもたらす
NCインデックスは、サンプリングとフルスキャンで推定すると、まったく異なる統計分布を取得します。サンプリングされたものは、奇妙な密度ベクトルを持っています。その結果、実行計画が不十分になります。 非クラスター化インデックスでサポートされているnull以外のFK列を含む、約2,700万行のテーブルがあります。テーブルは主キーでクラスター化されます。どちらの列もvarcharです。 FKカラムのフルスキャン統計更新により、通常の密度ベクトルが得られます。 All density Average Length Columns 6,181983E-08 45,99747 INSTANCEELEMENTID 3,615442E-08 95,26874 INSTANCEELEMENTID, ID つまり、INSTANCELEMENTID結合する個別の行ごとに約1.7行を読み取ることが期待されています。 ヒストグラムの一般的なビンは次のようになります。 RANGE_HI_KEY RANGE_ROWS EQ_ROWS DISTINCT_RANGE_ROWS AVG_RANGE_ROWS FOOBAR 133053 10 71366 1,679318 ただし、サンプルの更新を行う場合(このテーブルのデフォルトのサンプル番号は230k行です)、奇妙なことが起こります。 4,773657E-06 45,99596 INSTANCEELEMENTID 3,702179E-08 95,30183 INSTANCEELEMENTID, ID 上の密度INSTANCEELEMENTIDは2桁大きくなりました。(ただし、両方のカラムの密度はかなり許容できる値に推定されています)。 ヒストグラムの典型的なビンは次のようになります。 RANGE_HI_KEY RANGE_ROWS EQ_ROWS DISTINCT_RANGE_ROWS AVG_RANGE_ROWS FOOBAR 143870,4 766,2573 1247 115,3596 ZOTZOT 131560,7 1 …