PreparedStatement与Statement性能详细对比

我对PreparedStatement和Statement的性能测试了一下:
 测试代码如下:
java 代码
 
  1. Connection con = getOraConnection();  
  2. String sql = "select id,name from test where id=";  
  3. String tempSql;  
  4. int count = 1000;  
  5. long time = System.currentTimeMillis();  
  6. for (int i = 0; i < count; i++) {  
  7.     Statement st = con.createStatement();  
  8.     tempSql=sql+(int) (Math.random() * 100);  
  9.     st.executeQuery(tempSql);  
  10.     st.close();  
  11. }  
  12. System.out.println("st cost:" + (System.currentTimeMillis() - time));  
  13.   
  14. String psql = "select id,name from test where id=?";  
  15. time = System.currentTimeMillis();  
  16. for (int i = 0; i < count; i++) {  
  17.     int id=(int) (Math.random() * 100);  
  18.     PreparedStatement pst = con.prepareStatement(psql);  
  19.     pst.setBigDecimal(1new BigDecimal(id));  
  20.     pst.executeQuery();  
  21.     pst.close();  
  22. }  
  23.   
  24. System.out.println("pst cost:" + (System.currentTimeMillis() - time));  
  25.   
  26. con.close();  

test表很简单,id int,name varchar(50).
对几种数据库和相应驱动程序进行测试,结果如下(ms):
oracle:        1235    1109
MSSQL2000(JTDS):391    453
MSSQL2000(MS):    453    640
Mysql5:        391    891
PostgreSQL8.1:   1078    1047
结论:
1.单并发情况下,oracle--PostgreSQL--MSSQL--MySQL的性能依次增高;
2.MySQL不支持Prepared Statement特性,已在其驱动程序的文档中证实,所以在MySQL里使用 PreparedStatement的性能尤其低,可以比Statement慢一倍以上。
而MSSQL2000下,PreparedStatement比Statement慢;
Oracle,PostgreSQL对它的支持最好,使用PreparedStatement性能比Statement高。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值