2017-05-17 37 views
0

我在一個空的oracle表中插入100萬條記錄。爲了提高插入性能我曾嘗試下列優化:使用JDBC驅動程序進行Oracle插入優化

  • 捐贈/ * + APPEND * /提示中插入查詢
  • 插入之前禁用索引 ,然後重新啓用它一旦插入完成
  • 在桌面上啓用nologging。

但是,我無法看到插入性能有任何改善。我無法弄清楚爲什麼。

請注意,我用的org.springframework.jdbc.core.JdbcTemplate#batchUpdate插入記錄,我在批20000

+0

什麼是你的選擇statament是不再支持?直接從一張桌子? –

+0

不,我正在讀取來自kafka的數據並插入到Oracle表中。 –

+0

一個2?所以你可以並行插入你的數據 –

回答

1

Earliar甲骨文插入記錄已發表關於性能調整文件的JDBC:Oracle JDBC Memory Management

下面是一些提示

  1. 優化批量大小,具體取決於您的oracle配置。

  2. 緩存預處理語句,並對所有批處理(需要清理)或使用語句池(Oracle JDBC驅動程序支持它,參見上面的文檔)使用相同的語句。

  3. Oracle很少定義性能擴展:Performance Extensions。而不是addBatch使用sendBatch提高批處理性能。請參閱上面文檔中的示例23-1。


[1]用setExecuteBatchsendBatch甲骨文風格配料在12

相關問題