Command对象传参效率测试

在。net平台,普通的insert语句有两种写法,不带参数insert into test(c1,c2) values(var1,var2)和带参数insert into test(c1,c2) values(:c1,:c2),它们的执行效率如何呢?
我一直以为两者类似,带参数只是类似占位符的功能,但今天同事提到传递参数类似java中的预编译功能,可以有效提高运行效率。
做了个试验,代码如下:
Code
执行结果:
10000记录:
不传参数?5:46:19 15:46:34 15秒
传参数:?5:50:51 15:51:01 10秒

50000记录:
不传参数  16:09:03 16:10:24 81秒
传参数::16:15:43 16:16:36 53秒
这只是2个参数的情况,如果参数很多会不会影响更大呢?

10000记录,7个参数:
不传参数:17:11:01 17:11:18 17秒
传参数:17:13:46 17:13:59 13秒
50000记录:7个参数:
不传参数:17:19:02 17:20:25 1分23秒
传参数:17:15:09 17:16:10 1分1秒

居然差距不大。
总结:1,向command对象传递参数既可以避免sql注入问题,也可以提高性能;
            2,做学问不能想当然,数据出真知。
posted @ 2009-09-16 09:01  Rambo'Ma  阅读(281)  评论(2编辑  收藏  举报