web-dev-qa-db-ja.com

統計が最後に実行された日時を確認するにはどうすればよいですか?

最近、私たちのDBAチームが統計が最近実行されなかったことが原因であるとインデックスについて多くの問題を抱えています。これにより、SQL Management Studioを介して統計が最近更新されているかどうかを確認するにはどうすればよいですか。

この質問がこれを十分に説明していない場合はお詫び申し上げます。私はこれまで統計について紹介されてきただけで、以前はパフォーマンス関連の問題が発生した場合は常にインデックスを参照していました。

編集

以下を使用していますが、構文エラーが表示されます。

use *databasename*
exec sp_autostats *schema.tablename*

私が受け取っているエラーは:

Msg 102, Level 15, State 1, Line 2
Incorrect syntax near '.'.

どうしてこれなの?

8
Michael A

編集用-テーブル名を一重引用符で囲む必要があります。

EXEC sp_autostats 'tablename'

and元の質問の場合

まず、確認したい統計を見つけます。

choose statistics

次に、そのプロパティを確認すると、最後に更新されたタイムスタンプが表示されます。

enter image description here

または、次のクエリを実行することもできます。

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'
11
Oleg Dok

統計に関する情報を取得する最良の方法は、コマンドを使用することです

DBCC SHOW_STATISTICS (<tablename>,<indexname>)

これにより、統計が更新された時期だけでなく、サイズ、密度、選択性、およびデータの分布を示すヒストグラムに関する情報が返されます。以上のことから、これらの統計が最新で有効かどうかを判断できます。

8
Grant Fritchey