統計情報のバックアップ・リストア手順は以下の通り。
ユーザごとのバックアップ・リストア
--統計情報の格納テーブルを作成する (テーブル名は任意でよい) exec dbms_stats.create_stat_table('SCOTT','STAT_TABLE_ALL') --作成したテーブルにユーザ「SCOTT」のすべてのオブジェクトの統計情報をexportする exec dbms_stats.export_schema_stats('SCOTT','STAT_TABLE_ALL') --exportした統計情報テーブルをimportする exec dbms_stats.import_schema_stats(ownname => 'SCOTT' ,stattab => 'STAT_TABLE_ALL');
以下のようにテーブル単位でのバックアップ・リストアも可能
テーブルごとの統計情報をバックアップ・リストア
--統計情報の格納テーブルを作成する (テーブル名は任意でよい) exec dbms_stats.create_stat_table('SCOTT','STAT_TABLE'); --作成したテーブルにテーブル「tblhoge」の統計情報をexportする exec dbms_stats.export_table_stats(ownname => 'SCOTT' ,tabname => 'tblhoge' ,stattab => 'STAT_TABLE'); --「tblhoge」の統計情報を削除する exec dbms_stats.delete_table_stats('SCOTT','tblhoge'); --exportした統計情報テーブルを「tblhoge」の統計情報テーブルにimportする exec dbms_stats.import_table_stats(ownname => 'SCOTT' ,tabname => 'tblhoge' ,stattab => 'STAT_TABLE');
統計情報の取得が行われた時間を確認する(テーブル)
SELECT TABLE_NAME ,LAST_ANALYZED FROM USER_TABLES WHERE TABLE_NAME = 'TBLHOGE';
統計情報の取得が行われた時間を確認する(インデックス)
SELECT INDEX_NAME NAME, LAST_ANALYZED FROM USER_INDEXES WHERE INDEX_NAME = 'IDXHOGE';
動作確認環境:oracle 10g