日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java程序如何提高oracle百萬(wàn)級(jí)數(shù)據(jù)的insert效率

瀏覽:215日期:2024-01-03 17:58:26

問(wèn)題描述

業(yè)務(wù):需要從一個(gè)數(shù)據(jù)庫(kù)查詢(xún)百萬(wàn)級(jí)數(shù)據(jù),在java程序中插入到另一個(gè)oracle數(shù)據(jù)庫(kù)中代碼:

private final int persize = 1000; /** * 推送數(shù)據(jù)-流程 * @param tableCode 表名 * @param startTime 開(kāi)始時(shí)間 * @param endTime 結(jié)束時(shí)間 * @return */ public boolean pushFrData(String username,String tableCode,String tableName,String startTime,String endTime){SimpleDateFormat sdf = new SimpleDateFormat('yyyy-MM-dd');System.out.println('導(dǎo)入數(shù)據(jù)到名錄庫(kù)!');boolean boo = false;//表名集合String [] str = tableCode.split(',');String [] names = tableName.split(',');startTime = startTime==''?'2000-01-01':startTime;endTime = endTime==''?getCurrentDate():endTime;//System.out.println('service 時(shí)間 '+startTime+' > '+endTime);String start_Time = 'to_date(’'+startTime+'’,’%Y-%m-%d’)';String end_Time = 'to_date(’'+endTime+'’,’%Y-%m-%d’)';System.out.println('選擇推送 '+str.length+' 張表');//遍歷表名集合for(int i = 0;i<str.length;i++){ System.out.println('所選數(shù)據(jù)表: '+str[i]); //字段集合 String [] arr = fillService.getIdenCode(str[i]); String iden_code = ''; //遍歷字段 for(int j = 0;j<arr.length;j++){iden_code += ''+arr[j]+','; } //表字段 iden_code = iden_code.substring(0,iden_code.length()-1); //System.out.println(str[i]+'總共 '+arr.length+' 個(gè)字段!'); //得到推送數(shù)據(jù)集合 String sql = 'select count(*) from '+str[i] +' where s_ext_timestamp >= '+start_Time+' and s_ext_timestamp < '+end_Time; System.out.println(sql); int table_size = Integer.valueOf(frDao.query(sql).get(0).toString()); //System.out.println(table_size/persize); int times = table_size%persize==0?table_size/persize:table_size/persize+1; for(int t = 1; t <= times;t++){int start = (t-1) * persize;List<Object[]> lists = getData(str[i], iden_code,startTime,endTime,start);//推送數(shù)據(jù)System.out.println('準(zhǔn)備導(dǎo)出第 '+t+' 批數(shù)據(jù)');push(lists,str[i],iden_code);System.out.println('已導(dǎo)出第 '+t+' 批數(shù)據(jù)'); } try{if(table_size > 0){ addLog(username,str[i].toString(),names[i].toString(),table_size,'1',sdf.parse(startTime),sdf.parse(endTime));} }catch (ParseException e){System.out.println('日期格式轉(zhuǎn)換異常'); }}return boo; } /** * 推送數(shù)據(jù) * @param lists 數(shù)據(jù)集 * @param table 表名 * @param iden_code 字段集 */ private int push(List<Object []> lists,String table,String iden_code){boolean boo = false;int count = 0;//遍歷數(shù)據(jù)結(jié)果集if(lists.size()>0){ for(int k = 0;k < lists.size();k++){Object [] obj = lists.get(k);String val = ''; //將數(shù)據(jù)轉(zhuǎn)換成String類(lèi)型for(Object s:obj){ //val += '’'+s.toString()+'’,'; if(s != null){val += '’'+s.toString()+'’|'; }else{val += '’’|'; }}val = val.substring(0,val.length()-1);String etpsid = '';String [] iden = iden_code.split(',');String [] value = val.split('|');String val2 = '';//格式化數(shù)據(jù)(日期)if(iden.length == value.length){ //格式化sql語(yǔ)句的時(shí)間 for(int i = 0;i<iden.length;i++){//判斷字段是否是date類(lèi)型if(getDateType(table, iden[i])){ //格式化字符串 防止出現(xiàn)datetime類(lèi)型 1900-01-01 00:00:00.0的情況 if(value[i].length() > 4){String vv = value[i].substring(value[i].length()-3,value[i].length());if(vv.contains('.')){ val2 += 'to_date('+value[i].substring(0,value[i].length()-3)+'’,’YYYY-MM-DD HH24:MI:SS’),';}else{ val2 += 'to_date('+value[i]+',’YYYY-MM-DD HH24:MI:SS’),';} }else{val2 += '’’,'; }}else{ val2 += value[i]+',';}if('ETPSID'.equals(iden[i])){ etpsid = value[i];} } val2 = val2.substring(0,val2.length()-1);}else{ /*System.out.println(iden.length+' : '+value.length); for(int j = 0 ;j< value.length;j++){System.out.println(value[j]); }*/ System.out.println('推送數(shù)據(jù)和字段不一致');}String mlk_table = getMlkTable(table);String mlk_code = getMlkCode(iden_code,table);//插入數(shù)據(jù)sql//String sql = 'insert into '+table+'('+iden_code+') values ('+val2+')';//生成流水號(hào)String uuid = UUID.randomUUID().toString();uuid = uuid.replace('-','');val2 += ',’'+uuid+'’';String sql = 'insert into '+mlk_table+'('+mlk_code+') values ('+val2+')';if(etpsid != ''){ //System.out.println(etpsid); //工商增量數(shù)據(jù)按日依'企業(yè)唯一標(biāo)識(shí)'為關(guān)鍵字,更新、追加至名錄庫(kù)表中 String s_sql = 'select * from '+mlk_table+' where 企業(yè)唯一標(biāo)識(shí) = '+etpsid; //System.out.println(s_sql); int s = mlDao.query(s_sql).size(); if (s > 0){String update_sql = '';String [] update_code = mlk_code.split(',');for(int j = 0;j < iden_code.split(',').length;j++){ //判斷字段是否是date類(lèi)型 if(getDateType(table, iden[j])){//格式化字符串 防止出現(xiàn)datetime類(lèi)型 1900-01-01 00:00:00.0的情況if(value[j].length() > 4){ String vv = value[j].substring(value[j].length() - 3, value[j].length()); if(vv.contains('.')){update_sql += update_code[j]+' = '+ 'to_date('+value[j].substring(0, value[j].length() - 3)+'’,’YYYY-MM-DD HH24:MI:SS’),'; }else{update_sql += update_code[j]+' = '+ 'to_date('+value[j]+',’YYYY-MM-DD HH24:MI:SS’),'; }}else{ update_sql += update_code[j]+' = '+ '’’,';} }else{update_sql += update_code[j]+' = '+ value[j]+','; } //update_sql += update_code[j]+' = '+update_val[j]+',';}update_sql += '流水號(hào) = ’'+uuid+'’';update_sql = 'update '+mlk_table+' set '+update_sql+' where 企業(yè)唯一標(biāo)識(shí) = '+etpsid;//System.out.println('/////////// /n'+update_sql+'n');sql = update_sql;System.out.println('更新 '+mlk_table+' 標(biāo)識(shí) '+etpsid); }else{System.out.println('插入 '+mlk_table+' 標(biāo)識(shí) '+etpsid); }}//System.out.println(sql);try{ //循環(huán)執(zhí)行sql mlDao.execute(sql); count++; System.out.println(table+' 推送第 '+count+' 條');}catch (Exception e){ System.out.println('sql執(zhí)行異常!');} } System.out.println(table+' 表共插入 '+count+' 條數(shù)據(jù)!');}else{ System.out.println(table+' 表共插入 '+count+' 條數(shù)據(jù)!'); System.out.println('導(dǎo)入數(shù)據(jù)為空!');}return count; }

問(wèn)題解答

回答1:

讀取的話可以多線程讀取,插入的話看以下鏈接:

https://segmentfault.com/sear...

https://segmentfault.com/sear...

回答2:

1、數(shù)據(jù)保存到數(shù)據(jù)庫(kù)可以使用批處理比如一次處理100條插入記錄2、不要一次性處理所有數(shù)據(jù),可以將1W條數(shù)據(jù)分成兩個(gè)線程來(lái)處理,這樣可以充分利用cpu,同事不會(huì)導(dǎo)致大的阻塞

回答3:

建議使用JDBC的批處理模式,搜索以下關(guān)鍵字:addBatch(String query)executeBatch()

建議1000條左右作為一個(gè)batch提交事務(wù)。

回答4:

懶人方法:

在目標(biāo)oracle數(shù)據(jù)庫(kù)中建立分布式鏈接,直接insert into 目標(biāo)表 select sql語(yǔ)句

標(biāo)簽: java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
快she精品国产999| 欧美激情视频一区二区三区免费| 美日韩精品视频| 午夜在线精品| 蜜桃传媒麻豆第一区在线观看| 一区在线观看| 一本一道久久a久久| 欧美日韩va| 精品黄色一级片| а√在线中文在线新版| 成人福利视频| 精品日韩毛片| 丝袜亚洲另类欧美| 日韩高清中文字幕一区| 国产精品大片| 国产美女高潮在线| 蜜桃国内精品久久久久软件9| 不卡福利视频| 免费成人网www| 日韩中文字幕亚洲一区二区va在线| 亚洲精选91| 国产精品一区亚洲| 日韩电影免费网站| 国产婷婷精品| 国产激情欧美| 好吊日精品视频| 青草久久视频| 国产一区二区三区网| 香蕉国产精品| 欧美一区网站| 国产一区二区三区不卡av| 国产成人精品亚洲日本在线观看| 久久九九99| 免费成人在线影院| 欧美成人aaa| 国产91一区| 少妇高潮一区二区三区99| 欧美国产三级| 好吊日精品视频| 欧美aⅴ一区二区三区视频| 久久视频精品| 91免费精品国偷自产在线在线| 精品久久福利| 免费看黄色91| 日韩成人a**站| 亚洲午夜久久| 欧美13videosex性极品| 亚洲毛片在线| 青青青免费在线视频| 亚洲精品麻豆| 国产精品99一区二区三| 免费成人在线影院| 国产精品久久观看| 日韩一区精品| 久久人人97超碰国产公开结果| 日本一区二区三区中文字幕| 亚洲欧洲美洲av| 久久国产三级精品| 日韩视频二区| 不卡专区在线| 欧美日韩91| 中文亚洲免费| 国产精品国产一区| 欧美精品中文字幕亚洲专区| 日韩视频在线一区二区三区 | 国产亚洲一级| 四虎国产精品免费观看| 18国产精品| 视频一区二区国产| 国产一区日韩一区| 国产一区三区在线播放| 中文字幕视频精品一区二区三区| 久久一级电影| 美女一区网站| 精品理论电影在线| 国产精品主播| 日本午夜免费一区二区| 国产精品美女| 在线精品亚洲欧美日韩国产| 欧美黄页在线免费观看| 日韩1区2区3区| 亚洲欧美日韩视频二区| 久久久噜噜噜| 蜜桃视频在线网站| 国产精品成人a在线观看| 国产精品久久乐| 亚洲天堂日韩在线| 亚洲视频二区| 久久亚洲风情| 黄色日韩在线| 99国产精品| 日韩视频不卡| 国产视频一区在线观看一区免费| 亚洲高清成人| 欧美91精品| 欧美高清一区| 国产麻豆综合| 免费久久精品视频| 深夜福利亚洲| 日韩精品视频网站| 国产欧美三级| 国产欧美一区二区三区国产幕精品 | 久久精品国产福利| 久久99精品久久久野外观看| 国产欧美亚洲精品a| 国产欧美日韩视频在线| 国产日产一区| 国产欧美在线观看免费| 久久字幕精品一区| 黄色在线网站噜噜噜| 韩国精品主播一区二区在线观看 | 国产日韩精品视频一区二区三区| 日韩av一区二区三区四区| 欧美日韩亚洲一区三区| 国产精品探花在线观看| 久久99久久久精品欧美| 91综合网人人| 亚洲特色特黄| 欧美综合国产| 日韩av中文字幕一区| 日韩国产一二三区| 精品国内亚洲2022精品成人| 日韩在线观看| 狠狠爱www人成狠狠爱综合网| 一级成人国产| 国产精品17p| 亚洲黄色中文字幕| 国产精品试看| 国产精品任我爽爆在线播放| 成人一二三区| 亚洲欧洲一区| 国产精品nxnn| 欧美日韩尤物久久| 蜜臀av国产精品久久久久 | 香蕉成人久久| 日韩av资源网| 国产精品久久久久久久免费观看 | 成人影视亚洲图片在线| 黄色亚洲精品| 国产欧美一区二区色老头| zzzwww在线看片免费| 午夜欧美精品久久久久久久| 亚洲精品在线二区| 国产精品白丝一区二区三区| 日韩电影免费在线观看| 亚洲免费婷婷| 国产精品xxx在线观看| 亚洲成人精品| 日韩欧美在线精品| 日韩欧美三级| 日韩中文字幕一区二区高清99| 蜜桃精品视频| 日韩视频精品在线观看| 国产精品美女久久久久久不卡| 久久影视一区| 国产精品一区二区三区美女| 三级精品视频| 欧美日韩一区二区三区不卡视频 | 玖玖精品视频| 国产精品成人一区二区不卡| 免费在线视频一区| 91欧美在线| 日韩精品一级| 激情欧美一区| 精品一区二区三区中文字幕视频| 鲁大师成人一区二区三区| 精品国产亚洲一区二区在线观看| 国产视频欧美| 国产一区二区三区亚洲| 亚洲+小说+欧美+激情+另类| 在线手机中文字幕| 日韩精品中文字幕一区二区| 99精品一区| 麻豆精品新av中文字幕| 日韩专区欧美专区| 久久婷婷丁香| 精品国产一区二| 911精品国产| 中文亚洲欧美| 久久麻豆精品| 精品国产免费人成网站| 国产乱子精品一区二区在线观看| 免费日韩av片| 日韩在线中文| 成人在线视频区| 国产精品一区二区三区www| 亚洲影院天堂中文av色| 国产精品99一区二区| 亚洲人成在线网站| 精品视频国内| 嫩草伊人久久精品少妇av杨幂 | 视频在线观看91| 欧美一区二区三区高清视频| 国内精品伊人| 久久99精品久久久久久园产越南| 日韩激情中文字幕| 亚洲视频国产精品| 亚洲二区精品| 日韩精品一区二区三区免费观看| 国产suv精品一区|