最近、私たちのDBAチームが統計が最近実行されなかったことが原因であるとインデックスについて多くの問題を抱えています。これにより、SQL Management Studioを介して統計が最近更新されているかどうかを確認するにはどうすればよいですか。
この質問がこれを十分に説明していない場合はお詫び申し上げます。私はこれまで統計について紹介されてきただけで、以前はパフォーマンス関連の問題が発生した場合は常にインデックスを参照していました。
編集:
以下を使用していますが、構文エラーが表示されます。
use *databasename*
exec sp_autostats *schema.tablename*
私が受け取っているエラーは:
Msg 102, Level 15, State 1, Line 2
Incorrect syntax near '.'.
どうしてこれなの?
編集用-テーブル名を一重引用符で囲む必要があります。
EXEC sp_autostats 'tablename'
and元の質問の場合
まず、確認したい統計を見つけます。
次に、そのプロパティを確認すると、最後に更新されたタイムスタンプが表示されます。
または、次のクエリを実行することもできます。
SELECT t.name TableName, s.[name] StatName, STATS_DATE(t.object_id,s.[stats_id]) LastUpdated
FROM sys.[stats] AS s
JOIN sys.[tables] AS t
ON [s].[object_id] = [t].[object_id]
WHERE t.type = 'u'
統計に関する情報を取得する最良の方法は、コマンドを使用することです
DBCC SHOW_STATISTICS (<tablename>,<indexname>)
これにより、統計が更新された時期だけでなく、サイズ、密度、選択性、およびデータの分布を示すヒストグラムに関する情報が返されます。以上のことから、これらの統計が最新で有効かどうかを判断できます。