我有1000000条数据.用了 try {
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.21:1521:oradb","et","et");
Statement st = con.createStatement();
for(int i=0;i<=1000000;i++){
st.executeUpdate("insert into Authors values('"+i+"','中国人人')");
}
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
System.out.print("dwad"); }
这样太慢了,有没好的方法
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.21:1521:oradb","et","et");
Statement st = con.createStatement();
for(int i=0;i<=1000000;i++){
st.executeUpdate("insert into Authors values('"+i+"','中国人人')");
}
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
System.out.print("dwad"); }
这样太慢了,有没好的方法
TYPE NumTab IS TABLE OF NUMBER(4) INDEX BY BINARY_INTEGER;
TYPE NameTab IS TABLE OF CHAR(15) INDEX BY BINARY_INTEGER;
pnums NumTab;
pnames NameTab;
t1 NUMBER(5);
t2 NUMBER(5);
t3 NUMBER(5); BEGIN
FOR j IN 1..5000 LOOP -- load index-by tables
pnums(j) := j;
pnames(j) := ’Part No. ’ || TO_CHAR(j);
END LOOP;
t1 := dbms_utility.get_time;
FOR i IN 1..5000 LOOP -- use FOR loop
INSERT INTO parts VALUES (pnums(i), pnames(i));
END LOOP;
t2 := dbms_utility.get_time;
FORALL i IN 1..5000 -- use FORALL statement
INSERT INTO parts VALUES (pnums(i), pnames(i));
get_time(t3);
dbms_output.put_line(’Execution Time (secs)’);
dbms_output.put_line(’---------------------’);
dbms_output.put_line(’FOR loop: ’ || TO_CHAR(t2 - t1));
dbms_output.put_line(’FORALL: ’ || TO_CHAR(t3 - t2));
END;
create procedure demo is
TYPE NumTab IS TABLE OF NUMBER(4) INDEX BY BINARY_INTEGER; --自定义数组类型
TYPE NameTab IS TABLE OF CHAR(15) INDEX BY BINARY_INTEGER; --同上
pnums NumTab; -- 自定义数组变量
pnames NameTab;BEGIN
FOR j IN 1..5000 LOOP -- load index-by tables
pnums(j) := j;
pnames(j) := ’Part No. ’ || TO_CHAR(j);
END LOOP;
FORALL i IN 1..5000 -- use FORALL statement
INSERT INTO parts VALUES (pnums(i), pnames(i));
END demo;