日期:2014-05-17 浏览次数:21017 次
for(){ // 10000+
insert_sql =
" insert /*+append */ into RPTBOSJTEST(DWZD_BH,BBZD_BH,BBZD_DATE,HZD_ZB,LZD_ZB,DYZD_SJ,DYZD_DATA,DYZD_FLAG,H_BZBM)"
+ " values('"+DWZD_BH+"','"+BBZD_BH+"','"+BBZD_DATE+"', "
+ HZD_ZB+ ","
+ LZD_ZB+ ","
+ " '"+DYZD_SJ+"', "
+ DYZD_DATA +","
+ 0 + ","
+ " '' )" ;
bost.addBatch(insert_sql);
num ++ ;
if(num == 500){
bost.executeBatch();
bost.clearBatch();
num = 0 ;
}
--这是戴大大的原创,你可以参照下,趁着戴大还没来,我偷偷的转
Oracle 插入大量数据 收藏
1. 采用高速的存储设备,提高读写能力,如:EMC 和NetApp,
2. 假如tab1表中的没有数据的话
DROP TABLE TAB1;
CREATE TABLE TAB1 AS SELECT * FROM TAB2;
然后在创建索引
3. 用Hint 提示减少操作时间
INSERT /*+Append*/ INTO tab1
SELECT * FROM tab2;
4. 采用不写日志及使用Hint提示减少数据操作的时间。
建议方案是先修改表为不写日志:
sql> alter table table_name NOLOGGING;
插入数据:
INSERT /*+Append*/ INTO tab1
SELECT