web-dev-qa-db-ja.com

推定行数が不正確です

頻繁に検索される特定のフィールドで非常に大きな差異があるフィールドを持つテーブルがあります。フィールド内の任意の値に関連付けられているレコードの数は大きく異なります。

私の推定行数は常にオフになっています。統計を更新する前は、更新後に非常に過小評価されています。それを改善するために私は何ができますか?

フルスキャンで統計を更新します。コードは通常、プロシージャ内から呼び出されますが、今は外部でテストしました。

1
user1430949

create データの追加の統計を作成できます。 WHERE句を含めて、新しい統計オブジェクトがテーブルのサブセットのみを参照するようにします。行を適切にバケット化することにより(大、中、小?)、フィルター処理された統計はテーブル全体の統計よりも悪くなく、より良い計画につながります。

述語は、クエリで使用される述語と一致する必要があります。設定によっては、統計を維持するためのシステムアクティビティが増える場合があります。もちろん、これは、テーブルに行を意味のある形で集約できる列の組み合わせが含まれている(または含むように変更される可能性がある)ことを前提としています。

1
Michael Green