簡體   English   中英

通過OJDBC對Oracle數據庫進行大量插入的性能

[英]Performance of mass insert to Oracle database via OJDBC

我有一個Java程序,用於在Oracle數據庫中插入大量(750.000)記錄。 我正在使用OJDBC6庫和OCI客戶端。 要寫入的表包含330列,其中8列出現在一個或多個索引中。

在嘗試了兩種方法之后,我仍然在努力解決一些性能問題。

  1. 創建一個預准備語句,填寫每個記錄的參數,然后執行該語句需要1h29。
  2. 創建一個准備好的語句,填寫每個記錄的參數,將它們添加到批處理並每500/1000/5000執行批處理(我嘗試了幾個選項)處理的記錄需要0h27。

但是,當使用像Informatica PowerCenter這樣的ETL工具將相同的數據映射到相同的表時,它只需要幾分鍾。 我知道達到這個時間可能是一廂情願的想法,但我懷疑是否無法獲得任何表現。

有沒有人知道這個行動的合理時機,以及如何實現這些行動? 感謝任何幫助,非常感謝提前!

(一個相關的問題:我也必須更新很多記錄。最有效的方法是:跟蹤已更改的列並創建僅包含這些列的依賴於記錄的預准備語句;或者始終更新所有列,從而重用相同的預處理語句?)

另一件事是嘗試刪除索引,插入數據,然后重新加載索引。 Java不是那么容易,但足夠簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM