最近写一个程序将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%。
用存储过程执行Insert和直接执行Insert的性能比较
最新推荐文章于 2024-07-19 07:05:24 发布
博主编写程序将IP与地区列表从纯文本文件导入数据库,对比了直接用SqlCommand执行Insert语句和使用SQL Server临时存储过程执行Insert操作的速度。在Windows Server 2003、SQL Server 2000等环境下测试,结果显示存储过程比直接执行Insert语句快约10%。
1381

被折叠的 条评论
为什么被折叠?



