数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
用存储过程执行Insert和直接执行Insert的性能比较

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

    最近写一个程序将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%。




相关文章

相关软件