Oracle大量數據插入之性能優化理解

在學習Oracle中,我們使用SQL和ODBC鏈接進行數據插入,單獨插入少量數據時,沒有問題。但是在插入大量數據時,就會出現異常,內存溢出錯誤。

  如何解決在進行大量數據插入時,java程序能夠有效快速的進行數據處理。這就是數據庫中性能優化的問題。

  為什麽要進行性能優化。

  首先,在大量數據處理中 壹般常規的方式會造成程序處理效率和時間低下。達不到產品上線要求。

  其次,沒有性能優化在產品維護時也會出現很多錯誤,帶來麻煩。

  如何進行性能優化。

  壹般軟件都會進行大量數據測試,對性能做個整體評估,然後找出最好的方法來編寫需要的代碼。

  同時再次進行測試達到最佳的性能點。

  對於Oracle大量數據插入的性能優化我們采用如下方法進行

  先采用常規方式編寫代碼,如在放入數據時就直接使用list接口方法進行。

  插入數據中不進行批處理使用。

  發現,在插入10萬數據中 內存溢出,而且數據庫使用時間非常長。

  於是,我們先采用數據庫批處理命令 采用每1000條數據再進行壹次提交

  使用addBAEACH 方法,和excutbeach 方法來處理

  代碼為

  ps.addBatch();

  if(i!=0&&i%10000==0) {

  ps.executeBatch();

  con.commit();

  ps.clearBatch();

  }

  同時也使用預編譯語句進行插入。

  但是在仍然不能解決虛擬機內存溢出問題

  於是我們使用

  String[] fileList = new File(uploadDir).list();

  ArrayList<String[]> array = new ArrayList<String[]>();

  array.clear();

  來解決讀取文件後如何放入數據庫中再使用SQL語句進行插入。

  經過反復測試。最後找到最優點。在插入100萬數據情況下 每次1萬條數據提交。性能最優。