統計情報のバックアップ・リストア

統計情報のバックアップ・リストア手順は以下の通り。


ユーザごとのバックアップ・リストア

--統計情報の格納テーブルを作成する (テーブル名は任意でよい)
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