私には理解できない状況があります。SQL Serverの実行計画では、テーブルの統計が欠落していると表示されますが、統計は既に作成されています。
しかし、テーブルを見ると、自動的に作成された統計があることがわかります。
誰かがそれがどのようになり得るかを理解するのを助けることができますか?
Auto_UpdateおよびAuto_Create統計は、現在のDBでオンになっています。
SQL Server 2014を使用しています。
私には理解できない状況があります。SQL Serverの実行計画では、テーブルの統計が欠落していると表示されますが、統計は既に作成されています。
しかし、テーブルを見ると、自動的に作成された統計があることがわかります。
誰かがそれがどのようになり得るかを理解するのを助けることができますか?
Auto_UpdateおよびAuto_Create統計は、現在のDBでオンになっています。
SQL Server 2014を使用しています。
回答:
警告は、単一列統計の欠落に常に対応するとは限りません。
オプティマイザーが探していて、すべての場合に見つけられなかった正確な統計を正確に決定する簡単な方法はありませんが、ほとんどの場合、クエリの複数の等式述語にわたって相関情報を提供する複数列の統計です。
おそらく、あなたの場合、警告が表示されるスキャン後のフィルターの述語と正確に一致します。
SQL Serverが 'missing statistic'警告のすべての列を報告してくれたらいいのですが、残念ながら今日の動作ではありません。
警告を削除するために作成する必要がある複数列の統計を特定するには、ある程度の試行錯誤が必要になる場合があります。複数列の統計は自動的に作成できないことに注意してください。警告にもかかわらず、欠落している統計が提供された場合でも、推定の品質が向上する場合があります。
特定の列の統計が既に存在することは明らかであるため、2つの可能性を提供します。
DEV
に名前があるので、私は疑っています。簡単な答え(1)が問題ではないOPTION (RECOMPILE)
ことを確認し、確認または除外するために同じクエリを発行してみてください(2)。
以下の設定でクエリまたはプロシージャを実行すると、統計に関するこのような警告が表示されることに気付きました。
SET SHOWPLAN_ALL ON
不足している統計は次のとおりです。