用存储过程执行Insert和直接执行Insert的性能比较
发布时间:2018-08-20 19:12:40 所属栏目:电子商务 来源:站长网
导读:最近写一个程序将IP与所在地区的列表有纯文本文件导入到数据库中,一开始使用的是直接用SqlCommand执行Insert语句,后来知道了SQL Server能够对存储过程进行优化,省去了对语句进行分析的时间,比直接用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%。 (编辑:淮安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |