テーブルの統計情報の収集
DBMS_STATS.GATHER_TABLE_STATS
DBMS_STATS.GATHER_TABLE_STATS('スキーマ名','テーブル名');
関連する索引統計を収集しない(CASCADE=> FALSE パラメータ)
DBMS_STATS.GATHER_TABLE_STATS(
OWNNAME=> 'スキーマ名',
TABNAME=> 'テーブル名',
CASCADE=> FALSE
);
カラム統計の収集
METHOD_OPTに下記を追加
全カラム対象
METHOD_OPT=>'FOR ALL COLUMNS SIZE AUTO'
カラム統計情報の収集がインデックス項目のみ。
METHOD_OPT=>'FOR ALL INDEXED'
テーブルおよびインデックス、カラム統計取得
DBMS_STATS.GATHER_TABLE_STATS(
OWNNAME=> 'スキーマ名',
tabname=> 'テーブル',
cascade=> TRUE,
method_opt=> 'FOR ALL COLUMNS SIZE AUTO'
);
統計収集サンプルレート 10%
DBMS_STATS.GATHER_TABLE_STATS(
OWNNAME => 'スキーマ名',
TABNAME => 'テーブル名',
ESTIMATE_PERCENT => 10
);
インデックスの統計情報の収集
DBMS_STATS.GATHER_INDEX_STATS(
OWNNAME => 'スキーマ名',
INDNAME => 'インデックス名'
);
テーブル統計情報の削除
DBMS_STATS.DELETE_TABLE_STATS('スキーマ名','テーブル名');
スキーマ統計情報の収集
DBMS_STATS.GATHER_SCHEMA_STATS ('スキーマ名',サンプリングパーセンテージ);
スキーマ指定、サンプリング20%
DBMS_STATS.GATHER_SCHEMA_STATS(
ownname=> 'スキーマ',
estimate_percent=> 20,
cascade=> TRUE,
method_opt=> 'FOR ALL COLUMNS SIZE AUTO',
options=> 'GATHER AUTO');
options には 以下の指定が可能
'GATHER' すべてのオブジェクトの統計情報を取得。
'GATHER AUTO' Oracle が 必要と判断したオブジェクトの統計情報を取得。
'GATHER_EMPTY' 統計情報が存在しないオブジェクトの統計情報を取得。
システム統計の収集
DBMS_STATS.GATHER_SYSTEM_STATS
システム統計収集の開始
※システム統計収集の停止が実行されるまで収集され続ける
DBMS_STATS.GATHER_SYSTEM_STATS (GATHERING_MODE => 'START');
指定した時間だけシステム統計収集を行う。
60分間 システム統計収集を行う。
DBMS_STATS.GATHER_SYSTEM_STATS (
GATHERING_MODE => 'INTERVAL',
INTERVAL => 60);
システム統計収集の停止
GATHERING_MODE START および INTERVAL で開始したシステム統計収集の停止を行う。
DBMS_STATS.GATHER_SYSTEM_STATS (
GATHERING_MODE => 'STOP'
);
統計情報のバックアップとリストア
バックアップ
BEGIN
DBMS_STATS.CREATE_STAT_TABLE ('スキーマ', 'savestats');
DBMS_STATS.GATHER_TABLE_STATS ('スキーマ', 'テーブル', stattab => 'savestats');
END;
削除してリストア
BEGIN
DBMS_STATS.DELETE_TABLE_STATS ('スキーマ', 'テーブル');
DBMS_STATS.IMPORT_TABLE_STATS ('スキーマ', 'テーブル', stattab => 'savestats');
END;
|