統計情報の自動取得


SQLServer2008の統計情報はデフォルトでは自動で取得される。
統計情報の自動取得の設定はデータベースの「プロパティ」→「オプション」→「統計情報の自動更新」で確認することができる。
なお、テーブルごとに参照、設定したい場合はsp_autostatsを使用するとよい。


テーブルの約20%に相当するデータが更新されるとそのデータの統計は自動更新の対象となる。



統計情報の取得状況を確認するSQLは以下の通り

SELECT 
      obj.name			as	オブジェクト名
    , sts.name			as	統計情報名
    , sts.auto_created	as	自動的に統計情報を取得
    , sts.user_created 	as	ユーザが統計情報を取得
    , STATS_DATE(sts.object_id, sts.stats_id)	as	最終更新日
FROM     sys.objects AS obj 
LEFT JOIN  sys.stats AS sts ON sts.object_id = obj.object_id 
WHERE    type = 'U'
ORDER BY obj.name 


動作確認環境:SQL Server 2008