web-dev-qa-db-ja.com

exec sp_updatestatsは何をしますか?

sp_updatestatsの使用法は何ですか?パフォーマンスを向上させるために運用環境で実行できますか?

29
Vignesh

sp_updatestatsは、1行でも変更されたデータベース内のすべてのテーブルのすべての統計を更新します。デフォルトのサンプルを使用して実行します。つまり、テーブル内のすべての行をスキャンするわけではないので、他の方法よりも統計の精度が低下する可能性があります。

「インデックスの再構築」を含むメンテナンスプランがある場合、統計も更新されますが、すべての行をスキャンするため、より正確になります。インデックスの再構築後に統計を再構築する必要はありません。

update statisticsコマンドを使用して特定の統計オブジェクトまたはテーブルを手動で更新すると、プロセスをより適切に制御できます。自動化するには、 こちら をご覧ください。

自動更新は、オプティマイザーが必要と判断した場合にのみ起動します。 2012年には数学に変更がありました。<2012年には、テーブル行が500 + 20%変化するたびに自動更新が実行されました。 2012+では、SQRT(1000 *テーブル行)です。これは、大きなテーブルでより頻繁に発生することを意味します。もちろん、一時テーブルの動作は異なります。

結論として、sp_updatestatsは実際には良いよりも多くのダメージを与える可能性があり、最も推奨されないオプションです。

35
dean