EXP・IMP時の統計情報の扱いについて、教えていただけないでしょうか。
828206Feb 20 2011 — edited Feb 21 2011EXP・IMP時の統計情報の扱いについて、教えていただけないでしょうか。
以下の手順で、DMPをEXP&IMPしたのですが、IMP後の統計情報によく分からない点がありました。
①EXPするテーブルの統計情報を取得
EXEC DBMS_STATS.GATHER_TABLE_STATS(OWNNAME=>'USER1',TABNAME=>'TEMP_TABLE',CASCADE=>TURE);
②USER1の統計情報を確認
「SELECT LAST_ANALYZED,SAMPLE_SIZE FROM ALL_TABLES WHERE TABLE_NAME = 'TEMP_TABLE'」
SAMPLE_SIZE=5125
LAST_ANALYZED=2011/2/21
③テーブルをEXP
EXP USER1/PASS@SCHEMA FILE=T:\TEMP\TEMP.DMP
④別のユーザにテーブルをIMP
IMP USER2/PASS@SCHEMA FILE=T:\TEMP\TEMP.DMP FROMUSER=USER1 TOUSER=USER2
⑤USER2の統計情報を確認
「SELECT LAST_ANALYZED,SAMPLE_SIZE FROM ALL_TABLES WHERE TABLE_NAME = 'TEMP_TABLE'」
SAMPLE_SIZE=2000
LAST_ANALYZED=2011/2/21
疑問(1):
EXPやIMPの際にオプションstatisticsを指定しない場合は、EXP時点の統計情報がそのままIMPされると認識しているのですが、
IMPした後のSAMPLE_SIZEが5125ではなく、2000になってしまうのは、なぜでしょうか?
内部的に統計情報が再取得されてしまっているのでしょうか?
疑問(2):
上記の例とは別なのですが、過去のDMPをIMPした際、LAST_ANALYZEDが必ずIMPの日付に更新されてしまいます。
これは、統計情報の再取得が実行されているということでしょうか?
それとも、統計情報はDMP時点のものでIMPORTされているが、"IMPORTされた更新日"という意味でLAST_ANALYZEDがIMPした日付になるのでしょうか?
疑問(3):
dmpとしてバックアップされたデータベースの、特定のテーブルの統計情報がいつ取得されていたか調べたいのですが、
impしてlast_analyzedとsample_sizeを見る方法以外に、良い方法はあるのでしょうか。
Oracleのバージョンはは10.1.0.5.0です。
皆さまのお知恵をお借りできれば幸いです。
よろしくお願い致します。
Edited by: kakusan on 2011/02/20 18:12