web-dev-qa-db-ja.com

OEMを使用せずにOracleで最後に統計が実行された時間を確認するにはどうすればよいですか

Oracle 10gサーバーで統計が最後に実行された時間を確認したい。通常はOEM経由でこれを行いますが、無関係な理由でOEMがダウンしています。 sqlplusを使用してこれを確認する方法はありますか?出力が適切にフォーマットされていれば、さらに役立ちます。

24
Jacob

次のすべてのデータディクショナリテーブルにはLAST_ANALYZED列があります(必要に応じて*をUSER/ALL/DBAに置き換えます)。

*_TABLES
*_TAB_PARTITIONS
*_TAB_SUBPARTITIONS
*_INDEXES
*_IND_PARTITIONS
*_IND_SUBPARTITIONS

(ヒストグラムフィールドにはさらに多くの情報がありますが、私はそれほど深くは行きません。)

逆に、ALL_TAB_MODIFICATIONSは、オプティマイザ統計が収集されたため、挿入/更新/削除された行(またはテーブル/パーティション/サブパーティションが切り捨てられたタイムスタンプ)を示します。

29
Adam Musch
SELECT LAST_START_DATE 
 FROM DBA_SCHEDULER_JOBS 
WHERE job_name='GATHER_STATS_JOB';

SQLPLUS/NLS設定に応じて、日付形式を微調整する必要がある場合があります。

2
David Mann