バッチファイルの自動化のためにファイルをsqlldr
までOracleサーバーにアップロードしようとしています。 sqlldr
でファイルをOracleサーバーにアップロードするには時間がかかります。バッチを通して、1分に2100の行をアップロードします。 Oracle SQL Developerからcsv
ファイルから直接データをインポートしようとすると、1分で100k行が必要になります。SQLLDRのパフォーマンスを向上させるには?
これは私の.ctl
ファイルです:
OPTIONS(SKIP=1)
LOAD DATA
INFILE "D:\\TestBackup\Event.csv"
INSERT into table EVENT
APPEND
fields terminated by ',' OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(BRANCH_ID,TOTAL_SALES,TOTAL_LOST_SALES,TOTAL_INVENTORY,INSERTDATE sysdate
)
これは私の.bat
ファイルです:
sqlldr [email protected]/demo1 DATA='D:\Event.csv"
CONTROL=D:\Insert.ctl LOG=Insert.log BAD=Insert.bad
どのようにパフォーマンスを改善するには?
'sqlldr'コマンドで引用符が間違っているのですか、正しく貼り付けられていませんか? – Glenn
ドキュメントを見ましたか? BINDSIZEやREADSIZEの変更を検討することをお勧めします。 [そしてこれを参照してください](https://docs.oracle.com/cd/E11882_01/server.112/e22490/ldr_control_file.htm#SUTIL1135)。 –
BINDSIZEの値を少し変えてみて、挿入速度が400行/秒になるまで最大12倍の速度を試してください。約1000行/秒を増やす考え。ありがとう –