• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:oracle ダンプファイルのサイズとインポート先の表領域の使用サイズ)

oracle ダンプファイルのサイズとインポート先の表領域の使用サイズの関係

このQ&Aのポイント
  • あるダンプファイル(2.5GB)をオラクルDBへimportしたら、そのDBの表領域が10GBほど使用されました。
  • 2.5GBのものをimportしたのに、なぜここまで表領域を消費するのでしょうか?(これまでこのようなことはありませんでした。)
  • 表領域の使用サイズをもっと少なくするにはどうすればよいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • 3rd_001
  • ベストアンサー率66% (115/174)
回答No.2

ExportファイルのサイズとImport後のサイズは同期しません。よくある誤解です。 ExportファイルにはCreate文とInsert文が書かれています。 Create文にテーブルの初期サイズが設定されてます。初期サイズはCreate時に確保されます。データが少なくても(=Insert文が少ない)初期サイズが大きければテーブルのサイズも大きくなってしまいます。 もちろん、索引のサイズが大きい可能性はあります。 ただ、索引がデータ量の4倍のサイズになるとは思えません。 show=yでインポートを行うと、Create文が表示されるので、そこの初期エクステントを調べればわかると思います。 >インデックスをインポートしないようにすると >DBへデータを入れたあとにインデックスがきかなくならないのでしょうか? 索引が存在しないので当然、索引検索は行われません。 >それともインポート後に検索したときに自動で >つくものなのでしょうか? 明示的に作成しない限り自動で作成はされません。

ilaser
質問者

補足

回答ありがとうございます。 昨日、dba_segmentsで各オブジェクトのサイズを確認したところ、 すべてあわせて10GBほどありましたので、おっしゃるとおり私の勘違いでした。 重ねて質問させていただきたいのですが、 不要なデータを削除した上で、compress=nを指定して再度エクスポートしたのですが、 使用していないエクステントが解放されていないようです。 これはその初期エクステントが関係しているのでしょうか?

その他の回答 (1)

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

エクスポートした表にインデックスがあるのでは。 エクスポートで作成されるダンプファイルには表、索引の定義とデータのみが含まれます。 インポートで表が作成されてデータがインサートされ、索引が作成されます。 エクスポート時にINDEXES=Nを指定してエクスポートしたダンプファイルをインポートしてみてください。 あ、一度インポートしているなら、表を削除してから試してくださいね。表を消さないと索引も残っているので、INDEXES=Nでエクスポートしても、インポートで同じ結果になりますから。

ilaser
質問者

補足

早速の回答ありがとうございます。 重ねての質問で恐縮ですが、 インデックスをインポートしないようにすると DBへデータを入れたあとにインデックスがきかなくならないのでしょうか? それともインポート後に検索したときに自動で つくものなのでしょうか? インデックスについてよくわからなくて。

関連するQ&A