expコマンドの最適化と一般的な問題


*一般パス(Conventional path)
通常のパスエクスポートはexpのデフォルトのエクスポート方式であり、この方式では、expが処理するデータはsql select文の方式で抽出し、データをキャッシュプールに読み込み、Evaluating Buffer処理を経てEXportクライアントに戻り、最後にDumpファイルに書き込まれる.
前述の実験はいずれも通常経路操作に基づいており,ビッグデータ量での通常経路の導出には処理速度を向上させるために最も重要なパラメータはBUFFERである.このパラメータは、エクスポートを実行するときにデータを処理するために使用されるキャッシュ領域のサイズをバイト単位で指定します.このパラメータ変相は,導出時に記録配列が一度に最大ロードできる記録数を制御するために用いられる.
キャッシュ・サイズとロード・レコードの数は、次の式で換算できます.
キャッシュ・サイズ=レコード配列サイズ*レコード行の最大長
 exp test/test123 compress=n buffer=1024000 file=2012track.dmp tables=track log=2012track.log

bufferパラメータを増やすとエクスポート速度が大幅に速くなりますが、bufferパラメータが大きいほど良いわけではありません.bufferパラメータが一定の大きさに大きくなると、データをエクスポートする時間を増やすと影響しません.
 
*ダイレクトパス(DirectPath)
直接パスエクスポートで使用し、expにパラメータdirect=yを追加すればよい.このパラメータ値はデフォルトでnである.また、別のパラメータ値が直接パスのエクスポートに影響します:recordlength、このパラメータはexportのI/O bufferを指定するために使用され、バイト単位で最大65535を超えません.一般的に直接パスのエクスポートを実行する場合は、recordlengthパラメータ値を直接65535に設定することをお勧めします.以下の実験:
exp test/tet123 compress=n direct=y recordlength=65535 file=2012track.dmp tables=track log=2012track.log 

エクスポートの速度は通常のパスよりずっと速いが、加bufferとは差が少ない.
 
注意:エクスポート時プロンプトEXP-00091エラー処理方法一
DBのNLS_を表示CHARACTERSETの値(2つの方法を提供):select*from nls_database_parameters t where t.parameter='NLS_CHARACTERSET' or select * from v$nls_parameters  where parameter='NLS_CHARACTERSET'; SQL> select * from v$nls_parameters where parameter='NLS_CHARACTERSET'; PARAMETER          VALUE -----------------------  ------------------------- --------------------- NLS_CHARACTERSET ZHT 16 BIG 5より検出されたNLS_CHARACTERSET(ZHT 16 BIG 5)でexpの環境変数を設定する:WINNT>set NLS_LANG=AMERICAN_AMERICA.ZHT16BIG5 LINUX> export NLS_LANG=AMERICAN_AMERICA.ZHT16BIG5
処理方法2
expの後にstatistics=noneを加える