用存储过程执行Insert和直接执行Insert的性能比较

    最近写一个程序将IP与所在地区的列表有纯文本文件导入到数据库中,一开始使用的是直接用SqlCommand执行Insert语句,后来知道了SQL Server能够对存储过程进行优化,省去了对语句进行分析的时间,比直接用Insert语句要快一些。我就把Insert语句放在了一个临时存储过程中,用这个临时存储过程进行Insert操作,并粗略测试了两者执行的时间。

存储过程为:

CREATE PROCEDURE #InsertIPData
@StartIP nvarchar(50),
@EndIP nvarchar(50),
@Country nvarchar(50),
@Local nvarchar(100)
AS
INSERT INTO [IPWry] VALUES(@StartIP, @EndIP, @Country, @Local)

Insert语句为:

INSERT INTO [IPWry] VALUES(@StartIP, @EndIP, @Country, @Local)


    执行此存储过程用的是SqlDataAdapter的Update,总共180485条记录。

结果如下:

                    第一次        第二次        第三次        平均
直接执行Insert      133秒         132秒         135秒         133.3秒
存储过程            121秒         122秒         120秒         121秒


测试环境:Windows Server 2003, SQL Server 2000(v8.0.818), Framework 1.1.4322 sp1(Winform);
          Pentium 4 2.0GHz, 512MB RAM

    本结果说明,用存储过程执行大量Insert语句比直接执行Insert语句速度大约快10%。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值