Oracle數(shù)據(jù)插入的性能優(yōu)化的描述
以下的文章主要介紹的是Oracle數(shù)據(jù)插入的性能優(yōu)化理解的具體操作方法,如果你是Oracle數(shù)據(jù)插入的性能優(yōu)化實(shí)際應(yīng)用方面的新手,你就可以通過(guò)以下的文章對(duì)Oracle數(shù)據(jù)插入的性能優(yōu)化 是如何正確使用的方法有一個(gè)更好的了解,以下就是文章的詳細(xì)內(nèi)容的介紹。
在學(xué)習(xí)Oracle中,我們使用SQL和ODBC鏈接進(jìn)行數(shù)據(jù)插入,單獨(dú)插入少量數(shù)據(jù)時(shí),沒(méi)有問(wèn)題。但是在插入大量數(shù)據(jù)時(shí),就會(huì)出現(xiàn)異常,內(nèi)存溢出錯(cuò)誤。
如何解決在進(jìn)行大量Oracle數(shù)據(jù)插入時(shí),java程序能夠有效快速的進(jìn)行數(shù)據(jù)處理。這就是數(shù)據(jù)庫(kù)中性能優(yōu)化的問(wèn)題。
為什么要進(jìn)行性能優(yōu)化。
首先,在大量數(shù)據(jù)處理中 一般常規(guī)的方式會(huì)造成程序處理效率和時(shí)間低下。達(dá)不到產(chǎn)品上線要求。
其次,沒(méi)有性能優(yōu)化在產(chǎn)品維護(hù)時(shí)也會(huì)出現(xiàn)很多錯(cuò)誤,帶來(lái)麻煩。
如何進(jìn)行性能優(yōu)化。
一般軟件都會(huì)進(jìn)行大量數(shù)據(jù)測(cè)試,對(duì)性能做個(gè)整體評(píng)估,然后找出***的方法來(lái)編寫(xiě)需要的代碼。
同時(shí)再次進(jìn)行測(cè)試達(dá)到***的性能點(diǎn)。
對(duì)于Oracle數(shù)據(jù)插入的性能優(yōu)化我們采用如下方法進(jìn)行
先采用常規(guī)方式編寫(xiě)代碼,如在放入數(shù)據(jù)時(shí)就直接使用list接口方法進(jìn)行。
插入數(shù)據(jù)中不進(jìn)行批處理使用。
發(fā)現(xiàn),在插入10萬(wàn)數(shù)據(jù)中 內(nèi)存溢出,而且數(shù)據(jù)庫(kù)使用時(shí)間非常長(zhǎng)。
于是,我們先采用數(shù)據(jù)庫(kù)批處理命令 采用每1000條數(shù)據(jù)再進(jìn)行一次提交
使用addBAEACH 方法,和excutbeach 方法來(lái)處理
代碼為
- ps.addBatch();
- if(i!=0&&i%10000==0) {
- ps.executeBatch();
- con.commit();
- ps.clearBatch();
- }
同時(shí)也使用預(yù)編譯語(yǔ)句進(jìn)行插入。
但是在仍然不能解決虛擬機(jī)內(nèi)存溢出問(wèn)題
于是我們使用
- String[] fileList = new File(uploadDir).list();
- ArrayList<String[]> array = new ArrayList<String[]>();
- array.clear();
來(lái)解決讀取文件后如何放入數(shù)據(jù)庫(kù)中再使用SQL語(yǔ)句進(jìn)行插入。
經(jīng)過(guò)反復(fù)測(cè)試。***找到***點(diǎn)。在插入100萬(wàn)數(shù)據(jù)情況下 每次1萬(wàn)條數(shù)據(jù)提交。性能***。
以上的相關(guān)內(nèi)容就是對(duì)Oracle數(shù)據(jù)插入的性能優(yōu)化理解的介紹,望你能有所收獲。
【編輯推薦】