統計情報の収集タイミングを知る

sqlPlus上で以下のコマンドを実行

SQL> SHOW PARAMETERS STATISTICS_LEVEL
NAME                 TYPE     VALUE
-------------------- -------- ------------------------------
statistics_level     string   TYPICAL

が「TYPICAL」または「ALL」の場合に、自動で統計情報が収集されている

統計情報がいつ収集されたか

SELECT TABLE_NAME NAME, LAST_ANALYZED FROM USER_TABLES
NAME	 LAST_ANALYZED
EMP	 2010/11/1 3:06
TBL1	 2010/11/1 3:06
TBL1_0928031111	 2010/11/1 3:06
TBL2	 2010/11/1 3:06
TBL2_0928030545	 2010/11/1 3:06

統計情報の収集

BEGIN
	--テーブル単位の収集
	DBMS_STATS.GATHER_TABLE_STATS (
		OWNNAME       => 'ユーザ名'
		,TABNAME      => 'テーブル名'
		,METHOD_OPT   => 'FOR ALL INDEXED'
		,CASCADE      => TRUE
	);
END;
BEGIN
	--スキーマ単位の収集
	DBMS_STATS.GATHER_SCHEMA_STATS (
		 OWNNAME => 'ユーザ名'
		,OPTIONS => 'GATHER'
	);
END;