Forum Stats

  • 3,838,476 Users
  • 2,262,371 Discussions
  • 7,900,667 Comments

Discussions

expdp/impdpでの統計情報の扱いについて

YASUYOKA
YASUYOKA Member Posts: 17

O/S:Windows XP SP3 最新のパッチを適用済み

DB : Oracle11gR2 !1.2.0.0

以前のimpユーティリティでは、「STATISTICS = none」と指定すると、expユーティリティで出力した

ダンプファイルから統計情報をインポートしないように指定できました。

また、同様にして、統計情報のみをインポートすることが可能でした。

expユーティリティでも、「STATISTICS = none」と指定することで、統計情報をエクスポートの対象

から外すことができました。

そこで質問ですが、expdp/impdpのEXCLUDE、INCLUDEパラメータで何を指定すれば、統計情

報をエクスポート、インポートの対象から外したり、統計情報のみをエクスポート、インポートする

ことができるのでしょうか?

そのまま「STATISTICS」を指定すれば良いのでしょうか?

有識者、経験者の皆さまにご教示いただければ幸いです。

以上、よろしくお願いいたします。


Best Answer

  • user12075536123
    user12075536123 Member Posts: 346
    edited Nov 8, 2013 8:03AM Answer ✓

    expdp/impdp を実際に実行してみると


    expdp system/・・・ TABLES=SCOTT.emp EXCLUDE=STATISTICS DUMPFILE=dpump_dir:SCOTT1.dmp
    ・・・
    BLOCKSメソッドを使用した見積り合計: 64 KB
    オブジェクト型TABLE_EXPORT/TABLE/TABLEの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/INDEX/INDEXの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINTの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINTの処理中です
    . . "SCOTT"."EMP"                               8.492 KB      12行がエクスポートされました
    マスター表"SYSTEM"."SYS_EXPORT_TABLE_01"は正常にロード/アンロードされました


    ※統計が除外されているように見えます。


    expdp system/・・・ TABLES=SCOTT.emp DUMPFILE=dpump_dir:SCOTT2.dmp
    ・・・
    オブジェクト型TABLE_EXPORT/TABLE/TABLEの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/INDEX/INDEXの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINTの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICSの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINTの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICSの処理中です
    . . "SCOTT"."EMP"                               8.492 KB      12行がエクスポートされました
    マスター表"SYSTEM"."SYS_EXPORT_TABLE_01"は正常にロード/アンロードされました


    ※統計が除外されていないように見えます。


    ========================================


    impdp (統計情報を除外しているダンプを使用)を実際に実行してみると


    drop table scott.emp purge;
    impdp system/system#123 TABLES=SCOTT.emp DUMPFILE=dpump_dir1:SCOTT1.dmp
    ・・・
    オブジェクト型TABLE_EXPORT/TABLE/TABLEの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/TABLE_DATAの処理中です
    . . "SCOTT"."EMP"                               8.492 KB      12行がインポートされました
    オブジェクト型TABLE_EXPORT/TABLE/INDEX/INDEXの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINTの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINTの処理中です


    ※統計情報を除外しているダンプを使用しているので、impdp 時に明示的に統計情報を除外しなくもよい。


    SQL> select LAST_ANALYZED from dba_tables where table_name='EMP';


    LAST_ANA
    --------


    SQL> select LAST_ANALYZED from dba_indexes where index_name='PK_EMP';


    LAST_ANALYZED
    -------------------
    2013/11/08 21:29:50


    ※表の統計情報はダンプファイルに含まれていないので除外されているようです。
    ※索引の統計情報は自動的に作成されています。(索引は作成時に自動的に統計情報が収集されるはず)


    ========================================


    impdp (統計情報を除外していないダンプを使用)を実際に実行してみると


    drop table scott.emp purge;
    impdp system/system#123 TABLES=SCOTT.emp DUMPFILE=dpump_dir1:SCOTT2.dmp
    ・・・
    オブジェクト型TABLE_EXPORT/TABLE/TABLEの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/TABLE_DATAの処理中です
    . . "SCOTT"."EMP"                               8.492 KB      12行がインポートされました
    オブジェクト型TABLE_EXPORT/TABLE/INDEX/INDEXの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINTの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICSの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINTの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICSの処理中です


    SQL> select LAST_ANALYZED from dba_tables where table_name='EMP';


    LAST_ANALYZED
    -------------------
    2013/03/12 22:06:01


    SQL> select LAST_ANALYZED from dba_indexes where index_name='PK_EMP';


    LAST_ANALYZED
    -------------------
    2013/03/12 22:06:01


    ※エクスポート時の表と索引の統計情報がインポートされているようです。


    drop table scott.emp purge;
    impdp system/system#123 TABLES=SCOTT.emp EXCLUDE=STATISTICS DUMPFILE=dpump_dir1:SCOTT2.dmp
    ・・・
    オブジェクト型TABLE_EXPORT/TABLE/TABLEの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/TABLE_DATAの処理中です
    . . "SCOTT"."EMP"                               8.492 KB      12行がインポートされました
    オブジェクト型TABLE_EXPORT/TABLE/INDEX/INDEXの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINTの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINTの処理中です


    SQL> select LAST_ANALYZED from dba_tables where table_name='EMP';


    LAST_ANALYZED
    -------------------

    SQL> select LAST_ANALYZED from dba_indexes where index_name='PK_EMP';


    LAST_ANALYZED
    -------------------
    2013/11/08 21:33:47


    ※表の統計情報はダンプファイルに含まれているのですがインポート時に除外されているようです。
    ※索引の統計情報は自動的に作成されています。(索引は作成時に自動的に統計情報が収集されるはず)


    ========================================


    以上から以下のような動作だと考えます
    ・EXCLUDE=STATISTICS で表の統計情報を除外できる
    ・EXCLUDE=STATISTICS で索引の統計情報を除外できるが、自動収集されてしまう。

Answers

  • user12075536123
    user12075536123 Member Posts: 346
    edited Nov 8, 2013 8:02AM

    長文になったので、回答を分けて書いた方が分かりやすいと考え、回答を複数に分けます。

    > そのまま「STATISTICS」を指定すれば良いのでしょうか?

    以下を読むと
    http://docs.oracle.com/cd/E16338_01/server.112/b56303/dp_legacy.htm#sthref359
    http://docs.oracle.com/cd/E16338_01/server.112/b56303/dp_legacy.htm#sthref361

    expdp/impdp で STATISTICS を使用すると expdp/impdp はレガシーモードで動作し、STATISTICS は無視されると記載されています。

    user12075536123
  • 11gR2 のマニュアルを見ると
    http://docs.oracle.com/cd/E16338_01/server.112/b56303/dp_export.htm#i1007837


    expdp EXCLUDE
    -----
    object_typeは除外するオブジェクトのタイプを指定します。
    DATABASE_EXPORT_OBJECTS(全体モードの場合)、SCHEMA_EXPORT_OBJECTS(スキーマ・モードの場合)、TABLE_EXPORT_OBJECTS(表および表領域モードの場合)ビューを問い合せて、object_typeの有効な値の一覧を表示できます。
    OBJECT_PATH列にリストされる値が有効なオブジェクト・タイプです。
    -----


    impdp EXCLUDE にも同様な記述があります。


    DATABASE_EXPORT_OBJECTS,SCHEMA_EXPORT_OBJECTS,TABLE_EXPORT_OBJECTS の object_type を確認すると、すべてに STATISTICS が含まれています。
    ということは、expdp/imdp でも EXCLUDE を使用して統計情報を除外できそうです。

    user12075536123
  • user12075536123
    user12075536123 Member Posts: 346
    edited Nov 8, 2013 8:03AM Answer ✓

    expdp/impdp を実際に実行してみると


    expdp system/・・・ TABLES=SCOTT.emp EXCLUDE=STATISTICS DUMPFILE=dpump_dir:SCOTT1.dmp
    ・・・
    BLOCKSメソッドを使用した見積り合計: 64 KB
    オブジェクト型TABLE_EXPORT/TABLE/TABLEの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/INDEX/INDEXの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINTの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINTの処理中です
    . . "SCOTT"."EMP"                               8.492 KB      12行がエクスポートされました
    マスター表"SYSTEM"."SYS_EXPORT_TABLE_01"は正常にロード/アンロードされました


    ※統計が除外されているように見えます。


    expdp system/・・・ TABLES=SCOTT.emp DUMPFILE=dpump_dir:SCOTT2.dmp
    ・・・
    オブジェクト型TABLE_EXPORT/TABLE/TABLEの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/INDEX/INDEXの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINTの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICSの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINTの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICSの処理中です
    . . "SCOTT"."EMP"                               8.492 KB      12行がエクスポートされました
    マスター表"SYSTEM"."SYS_EXPORT_TABLE_01"は正常にロード/アンロードされました


    ※統計が除外されていないように見えます。


    ========================================


    impdp (統計情報を除外しているダンプを使用)を実際に実行してみると


    drop table scott.emp purge;
    impdp system/system#123 TABLES=SCOTT.emp DUMPFILE=dpump_dir1:SCOTT1.dmp
    ・・・
    オブジェクト型TABLE_EXPORT/TABLE/TABLEの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/TABLE_DATAの処理中です
    . . "SCOTT"."EMP"                               8.492 KB      12行がインポートされました
    オブジェクト型TABLE_EXPORT/TABLE/INDEX/INDEXの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINTの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINTの処理中です


    ※統計情報を除外しているダンプを使用しているので、impdp 時に明示的に統計情報を除外しなくもよい。


    SQL> select LAST_ANALYZED from dba_tables where table_name='EMP';


    LAST_ANA
    --------


    SQL> select LAST_ANALYZED from dba_indexes where index_name='PK_EMP';


    LAST_ANALYZED
    -------------------
    2013/11/08 21:29:50


    ※表の統計情報はダンプファイルに含まれていないので除外されているようです。
    ※索引の統計情報は自動的に作成されています。(索引は作成時に自動的に統計情報が収集されるはず)


    ========================================


    impdp (統計情報を除外していないダンプを使用)を実際に実行してみると


    drop table scott.emp purge;
    impdp system/system#123 TABLES=SCOTT.emp DUMPFILE=dpump_dir1:SCOTT2.dmp
    ・・・
    オブジェクト型TABLE_EXPORT/TABLE/TABLEの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/TABLE_DATAの処理中です
    . . "SCOTT"."EMP"                               8.492 KB      12行がインポートされました
    オブジェクト型TABLE_EXPORT/TABLE/INDEX/INDEXの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINTの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICSの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINTの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICSの処理中です


    SQL> select LAST_ANALYZED from dba_tables where table_name='EMP';


    LAST_ANALYZED
    -------------------
    2013/03/12 22:06:01


    SQL> select LAST_ANALYZED from dba_indexes where index_name='PK_EMP';


    LAST_ANALYZED
    -------------------
    2013/03/12 22:06:01


    ※エクスポート時の表と索引の統計情報がインポートされているようです。


    drop table scott.emp purge;
    impdp system/system#123 TABLES=SCOTT.emp EXCLUDE=STATISTICS DUMPFILE=dpump_dir1:SCOTT2.dmp
    ・・・
    オブジェクト型TABLE_EXPORT/TABLE/TABLEの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/TABLE_DATAの処理中です
    . . "SCOTT"."EMP"                               8.492 KB      12行がインポートされました
    オブジェクト型TABLE_EXPORT/TABLE/INDEX/INDEXの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINTの処理中です
    オブジェクト型TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINTの処理中です


    SQL> select LAST_ANALYZED from dba_tables where table_name='EMP';


    LAST_ANALYZED
    -------------------

    SQL> select LAST_ANALYZED from dba_indexes where index_name='PK_EMP';


    LAST_ANALYZED
    -------------------
    2013/11/08 21:33:47


    ※表の統計情報はダンプファイルに含まれているのですがインポート時に除外されているようです。
    ※索引の統計情報は自動的に作成されています。(索引は作成時に自動的に統計情報が収集されるはず)


    ========================================


    以上から以下のような動作だと考えます
    ・EXCLUDE=STATISTICS で表の統計情報を除外できる
    ・EXCLUDE=STATISTICS で索引の統計情報を除外できるが、自動収集されてしまう。

  • user12075536123
    user12075536123 Member Posts: 346
    edited Nov 9, 2013 6:20AM

    今回の回答だけでは質問内容のすべてには回答できていないと考えます。

    今回の回答に含まれていない内容は、上と同じテストをすれば確認できると思います。

    今回のテストをしてみて気になるのは以下の点です。

    ・インポート時に索引の統計情報が自動生成されてしまう。

  • YASUYOKA
    YASUYOKA Member Posts: 17

    user12075536123さん、ありがとうございます。

    私も実験してみました。

    EXCLUDE=STATISTICSを指定して、スキーマ単位でexpdpを行い、元のDBから該当スキーマを

    CASCADE指定で削除してから、スキーマ単位でimpdpを行って、索引以外の統計情報が含まれて

    いないことを確認しました。

    今までの情報は、私の個人の実験環境での実験でした。

    実際の運用では、統計情報格納テーブルを別に作り、統計情報以外をエクスポート/インポートして、

    統計情報格納テーブルから、実際の統計情報をDBMS_STATS.IMPORT_SHEAMA_STATSパッ

    ケージを使用して反映させる、というのが要件になっています。

    この統計情報格納テーブルからの統計情報反映処理も、私個人の実験環境でもテストOKでした。

    その時、索引の統計情報も統計情報格納テーブルの内容が反映されることも確認しました。

    いろいろ実験までして頂き、ありがとうございます。

    以上、よろしくお願いいたします。

This discussion has been closed.