統計情報のエクスポート機能は、主にテーブルの統計情報を指定されたユーザーテーブルにエクスポートして保存するために使用されます。一方、インポート機能は、指定されたユーザーテーブルの統計情報を現在のデータベースにインポートし、再収集のプロセスを省略することができます。例えば、データベースデータの移行時に、テーブルの統計情報を指定されたユーザーテーブルにエクスポートして一緒にデータ移行を行い、データ移行が成功した後、以前に保存された統計情報を含むユーザーテーブルの統計情報を新しいデータベースに直接インポートする場合などに利用されます。
DBMS_STATSシステムパッケージが提供する統計情報のインポートおよびエクスポート機能のPROCEDUREは以下のとおりです。
create_stat_table:統計情報を保存するためのユーザーテーブルを作成します。drop_stat_table:統計情報を保存するためのユーザーテーブルを削除します。export_table_stats:テーブルレベルの統計情報をエクスポートします。export_index_stats:インデックスの統計情報をエクスポートします。export_column_stats:列レベルの統計情報をエクスポートします。export_schema_stats:スキーマ内のすべてのテーブルの統計情報をエクスポートします。import_table_stats:テーブルレベルの統計情報をインポートします。import_index_stats:インデックスの統計情報をインポートします。import_column_stats:列レベルの統計情報をインポートします。import_schema_stats:指定された統計情報ユーザーテーブルに属するスキーマ内のすべてのテーブルの統計情報をインポートします。
# ユーザーTESTの統計情報ユーザーテーブルTEST_STATを作成
call dbms_stats.create_stat_table('TEST', 'TEST_STAT');
# ユーザーTESTのT1テーブルの統計情報をTEST_STATにエクスポート
call dbms_stats.export_table_stats('TEST', 'T1', stattab=>'TEST_STAT', statown=>'TEST');
# ユーザーTESTのTEST_STATからユーザーTESTのT1テーブルの統計情報をインポート
call dbms_stats.import_table_stats('TEST1', 'T1', stattab=>'TEST_STAT', statown=>'TEST');
# ユーザーTESTの統計情報ユーザーテーブルTEST_STATを削除
call dbms_stats.drop_stat_table('TEST', 'TEST_STAT');