データベース内全ての統計情報取得(システム統計を除くオプティマイザ統計の取得)を行います。
GATHER_DATABASE_STATS データベース単位で統計情報を取得
こちらは時間がかかるので実行する際にはご注意ください。
begin DBMS_STATS.GATHER_DATABASE_STATS ( OPTIONS => 'GATHER AUTO' ,DEGREE => 2 ,CASCADE => TRUE ); end;
- OPTIONS
- GATHER
- データベース内のすべてのオブジェクトに関する統計情報を収集します。
- GATHER AUTO
- 必要な統計情報をすべて自動的に収集します。Oracleは、新しい統計情報を必要とするオブジェクトを暗黙的に判別し、その統計情報を収集する方法を判別します。
- LIST AUTO
GATHER AUTO
を使用して処理されるオブジェクトのリストを戻します。
- LIST STALE
- *
_tab_modifications
ビューを調べて判別した失効オブジェクトのリストを戻します。
- *
- GATHER
- DEGREE:並列度
- CASCADE: TRUE 索引についても統計情報を収集します。
DELETE_DATABASE_STATS データベース単位で統計情報を削除
システム統計を除き、オプティマイザ統計全てを削除します。(表統計、列統計、索引統計、固定統計)
begin DBMS_STATS.DELETE_DATABASE_STATS(); end;
指定のスキーマ内全ての統計情報取得
スキーマ単位ぐらいで様子みながら実行したほうが良いかもしれません。
begin DBMS_STATS.GATHER_SCHEMA_STATS ( ownname => 'SCOTT' ); end;
パラメータを多く使わないならexecコマンドにて実行してもいいですね。(上記と同じ意味です)
exec DBMS_STATS.GATHER_SCHEMA_STATS ('SCOTT') ;
指定のスキーマ内全ての統計情報削除
begin DBMS_STATS.DELETE_SCHEMA_STATS ( ownname => 'SCOTT' ); end;