1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Oracle DB】EXP-00091:不振な統計をエクスポートしています

Last updated at Posted at 2019-06-28

事象:EXP-00091:不振な統計をエクスポートしています

下記コマンドが書かれたBATファイルを実行し、
テーブルのレコードをエクスポートしようとした。

export.bat
exp USER/PASS@SAMPLE file=D:\work\SAMPLE.dmp log=SAMPLE.log tables=TABLE_SAMPLE query=\" WHERE DAY BETWEEN '20190101' AND '20191231' AND TYPE IN('A','B','C') \" 

▼結果

コマンドプロンプト:LOG
指定された表をエクスポートします... 従来型パス経由...
.. 表 TABLE_SAMPLEをエクスポート中 100行エクスポートされました。
EXP-00091:不振な統計をエクスポートしています
EXP-00091:不振な統計をエクスポートしています
EXP-00091:不振な統計をエクスポートしています
エクスポートは正常に終了しましたが、警告が発生しました。

と警告が表示された。

▼実行環境
OS:Windows
DB:Oracle

結論:表の一部分を抜き出したため、統計情報の意味がなくなったから。

実行したBATファイルでは、
query=" WHERE DAY BETWEEN '20190101' AND '20191231' AND TYPE IN('A','B','C')
とWHERE句を指定している。

エクスポートを行う際、テーブルの統計情報も一緒に抜き出される。
テーブルの一部のみを抜き出した場合、統計情報が有効でなくなる(場合がある)。
「EXP-00091:不振な統計をエクスポートしています」
はそんな感じの話を伝えてくれていたようだ。

解決策:オプション[statistics=none]をつける

statistics=none をコマンドの最後に付ければ、統計情報の抜き出しを行わない。

export.bat
exp USER/PASS@SAMPLE file=D:\work\SAMPLE.dmp log=SAMPLE.log tables=TABLE_SAMPLE query=\" WHERE DAY BETWEEN '20190101' AND '20191231' AND TYPE IN('A','B','C') \" statistics=none

補足

  • 「統計情報」って??
    効率的なデータ探索をどう実行できるか?(=実行計画)を決めるためのデータ。
    表/インデックス内のデータ分布なんかも保管しているそうな。

  • エクスポート サンプル

export.bat
exp USER/PASS@接続情報 file=ファイルパス query=\" WHERE句 \" <OPTION>

※サンプルを使う場合は注意して自己責任で使ってください。
 だいぶん疲れた状態でこの記事を書いているので。。。笑

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?