統計を手動で更新する理由はありますか?


回答:


21

もちろん、データが自動統計のレートよりも頻繁に変化している場合(または、ステータスや日付/タイムスタンプの更新など、行の20%未満を頻繁に更新している場合)。または、テーブルが巨大で、自動統計更新をトリガーするのに十分なほど変化していない場合。または、フィルター処理されたインデックスがある場合(自動統計しきい値は、フィルター処理されたインデックスの行のサブセットの変更の割合ではなく、テーブル全体の変更の割合に基づいているため)。


フィルター選択されたインデックスの場合は+1。それが主な理由だと思う、または非常に大きなデータセットの場合。1か月に3,000万行を挿入するテーブルがありますが、これはわずかな割合であるため、手動で開始しない限り、統計は通常更新されません。
JNK

+1また、カウンターをリセットするスケジュールでそれを行うので、メンテナンス期間外の可能性が少なくなります。
gbn

7

さらにいくつかの(表面的な)理由:

自動統計情報は、新しい統計情報の準備ができるまで、更新をトリガーしたクエリをブロックします。

...自動更新の統計情報も非同期で有効にしない限り。更新をトリガーしたクエリは、新しい統計を待機しませんが、古い誤った統計で実行される可能性があります。

また、比較的大きなテーブル(44M行、8.5 GB)を持つデータベースが統計情報の更新を開始すると、奇妙なブロッキングの問題が発生しました。しかし、実際に何が起こっているかを追跡する前に、そのアプリケーションを廃止しました。


1
+1これは、ブロッキングと非同期オプションの素晴らしい点です。
アーロンバートランド

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