如下程序,调用一次存储过程要 400豪秒,没法接受,可以接受的是 0.5豪秒以内,谢谢
import java.sql.*;
import java.util.*;
import oracle.jdbc.driver.*;
import oracle.sql.*;public class test
{
public static void main(String args[]) throws Exception
{ DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection con = DriverManager.getConnection("jdbc:oracle:oci8:@test","user","pass");
long time1 = System.currentTimeMillis() ;
OracleCallableStatement cstmt = (OracleCallableStatement) con.prepareCall("{call testInPersons(?)}");
StructDescriptor sd = new StructDescriptor("PERSON", con);
Object[] personAttrs1 = new Object[] { "This is code11", "100",new NUMBER(32), 200};
STRUCT person1 = new STRUCT(sd, con, personAttrs1);
Object[] personAttrs2 = new Object[] { "This is code22", "aaa", new NUMBER(33), 100 };
STRUCT person2 = new STRUCT(sd, con, personAttrs2);
ArrayDescriptor ad = new ArrayDescriptor("person_table_type".toUpperCase(), con);
ARRAY persons = new ARRAY(ad, con, new STRUCT[] { person1, person2 });
cstmt.setARRAY(1, persons);
cstmt.execute();long time2 = System.currentTimeMillis() ;
System.out.println(time2-time1);
}
}
import java.sql.*;
import java.util.*;
import oracle.jdbc.driver.*;
import oracle.sql.*;public class test
{
public static void main(String args[]) throws Exception
{ DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection con = DriverManager.getConnection("jdbc:oracle:oci8:@test","user","pass");
long time1 = System.currentTimeMillis() ;
OracleCallableStatement cstmt = (OracleCallableStatement) con.prepareCall("{call testInPersons(?)}");
StructDescriptor sd = new StructDescriptor("PERSON", con);
Object[] personAttrs1 = new Object[] { "This is code11", "100",new NUMBER(32), 200};
STRUCT person1 = new STRUCT(sd, con, personAttrs1);
Object[] personAttrs2 = new Object[] { "This is code22", "aaa", new NUMBER(33), 100 };
STRUCT person2 = new STRUCT(sd, con, personAttrs2);
ArrayDescriptor ad = new ArrayDescriptor("person_table_type".toUpperCase(), con);
ARRAY persons = new ARRAY(ad, con, new STRUCT[] { person1, person2 });
cstmt.setARRAY(1, persons);
cstmt.execute();long time2 = System.currentTimeMillis() ;
System.out.println(time2-time1);
}
}
解决方案 »
- JSP页面图片能显示出来,但是页面别的信息为空白
- 面试的时候被问到的几个问题,求解
- Js内存泄露问题总结【分享】
- 请教个小问题 <textarea disabled rows="5">ABCDE</textarea> 能改变ABCDE的颜色么?
- 求java的倒计时程序,高手进来,低手免发bia言
- 靠,比白菜都便宜
- applytime为从数据库中查询出来的时间,怎么求applytime与当前系统时间差?(差的单位为天)
- 怎么判断一个字符串是不是空值??
- 急~关于如何记录下访问者所在网页上停留的时间!请进.分不够在加!
- 用什么软件进行反反编译
- springMVC3的控制台打印级别问题?
- 一个多条件模糊查询问题?
(
p_code VARCHAR2(32),
p_name VARCHAR2(16),
p_age NUMBER,
p_birthday NUMBER
);
/CREATE OR REPLACE TYPE person_table_type IS TABLE OF Person;
/CREATE TABLE personTable OF person;CREATE OR REPLACE PROCEDURE testInPersons(persons IN person_table_type) IS
BEGIN
FORALL i IN persons.first .. persons.count
INSERT INTO personTable VALUES(persons(i));
COMMIT;
END testInPersons;