您的位置:首页 > 其它

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

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

存储过程为:

CREATEPROCEDURE#InsertIPData
@StartIPnvarchar(50),
@EndIPnvarchar(50),
@Countrynvarchar(50),
@Localnvarchar(100)
AS
InsertINTO[IPWry]VALUES(@StartIP,@EndIP,@Country,@Local)

Insert语句为:

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

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

结果如下:

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

测试环境:WindowsServer2003,SQLServer2000(v8.0.818),1.1.4322sp1(Winform);
Pentium42.0GHz,512MBRAM

本结果说明,用存储过程执行大量Insert语句比直接执行Insert语句速度大约快10%。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: