Sql语句与存储过程查询数据的性能测试实现代码

 更新时间:2009年04月25日 02:15:16   作者:  
Sql语句 存储过程查 性能测试对比代码。
一.建立数据库Liezui_Test
ID int 主键 自增
Title varchar(100)
ReadNum int
二.向数据库中插入100万条数据
declare @i int
set @i=1
while @i<=500000
begin
insert into Liezui_Test(Title,ReadNum) values('执行总数统计',@i)
set @i=@i+1
end
GO
declare @i int
set @i=1
while @i<=500000
begin
insert into Liezui_Test(Title,ReadNum) values('毛巾因经常处于潮湿状态而极易滋生有害细菌',@i)
set @i=@i+1
end
GO
三.增加SelectByTitle存储过程
Create PROCEDURE [dbo].[SelectByTitle]
AS
BEGIN
Select top 10000 * from Liezui_Test where Title Like '%执行%'
END
三.开始测试
首先在页面内放一个repeater 用于绑定数据 二个label 用于显示结果
测试场景一 : 不绑定Repeater,只进行数据库源的绑定
代码如下:
Stopwatch st = new Stopwatch();
st.Start();
Repeater1.DataSource = Jinlong.Data.DBHelper.ReturnDataSet("Select top 10000 * from Liezui_Test where Title Like '%执行%'").Tables[0];
st.Stop();
Label1.Text = st.ElapsedMilliseconds.ToString() + "ms";
Stopwatch st2 = new Stopwatch();
st2.Start();
SqlParameter[] para = { };
Repeater1.DataSource = Jinlong.Data.DBHelper.RunProcedure("SelectByTitle", para, "ds");
st2.Stop();
Label2.Text = st2.ElapsedMilliseconds.ToString() + "ms";
结果如下:
Label1 Label2
52ms 48ms
39ms 46ms
45ms 44ms
43ms 42ms
37ms 40ms
43ms 44ms
结论:用Sql语句和存储过程的速度差不多.
测试场景二 : 绑定Repeater
代码如下:
Stopwatch st = new Stopwatch();
st.Start();
Repeater1.DataSource = Jinlong.Data.DBHelper.ReturnDataSet("Select top 10000 * from Liezui_Test where Title Like '%执行%'").Tables[0];
Repeater1.DataBind();
st.Stop();
Label1.Text = st.ElapsedMilliseconds.ToString() + "ms";
Stopwatch st2 = new Stopwatch();
st2.Start();
SqlParameter[] para = { };
Repeater1.DataSource = Jinlong.Data.DBHelper.RunProcedure("SelectByTitle", para, "ds");
Repeater1.DataBind();
st2.Stop();
Label2.Text = st2.ElapsedMilliseconds.ToString() + "ms";
结果如下:
Label1 Label2
161ms 192ms
205ms 191ms
142ms 208ms
153ms 198ms
134ms 209ms
280ms 335ms
结论:用存储过程的速度居然比直接用Sql语句还要慢.

相关文章

  • Windows2012配置SQLServer2014AlwaysOn的图解

    Windows2012配置SQLServer2014AlwaysOn的图解

    SQLserver 2014 AlwaysOn增强了原有的数据库镜像功能,使得先前的单一数据库故障转移变成以组(多个数据)为单位的故障转移。接下来通过本文给大家介绍Windows2012配置SQLServer2014AlwaysOn的方法,感兴趣的朋友一起学习吧
    2016-04-04
  • 在安装了Sql2000的基础上安装Sql2005的详细过程 图文

    在安装了Sql2000的基础上安装Sql2005的详细过程 图文

    在安装了Sql2000的基础上安装Sql2005的详细过程 图文方法,需要的朋友可以参考下。
    2011-03-03
  • 将MS SQL SERVER数据库运行在普通用户(独立用户)状态下的设置方法终结篇

    将MS SQL SERVER数据库运行在普通用户(独立用户)状态下的设置方法终结篇

    最近接手了一台服务器,里面安装了sqlserver,为了安全考虑,我们将sqlserver在普通权限下运行,这样就不会因为sqlserver的自身安全问题,导致服务器成为肉鸡的危险。
    2010-05-05
  • 详解SQL报错盲注

    详解SQL报错盲注

    这篇文章主要介绍了SQL报错盲注详解,包括SQL报错函数,SQL报错盲注payload构造,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • 直接循环写入数据

    直接循环写入数据

    直接循环写入数据...
    2006-08-08
  • 通过navicat连接SQL Server数据库的详细步骤

    通过navicat连接SQL Server数据库的详细步骤

    本文介绍如何通过navicat连接SQL Server数据库,以往总是使SQL Server客户端来连接SQL Server数据库,但是SQL Server客户端一般有几百M的大小,而且安装繁琐配置麻烦,如果可以通过Navicat直接连接SQL Server则会非常轻松方便,需要的朋友可以参考下
    2023-12-12
  • SQL Server2022数据库安装及配置过程

    SQL Server2022数据库安装及配置过程

    最近发现有诸多的小伙伴们对于sqlserver安装教程2022,sql server安装教程这个问题都颇为感兴趣的,这篇文章主要给大家介绍了关于SQL Server2022数据库安装及配置的相关资料,需要的朋友可以参考下
    2023-12-12
  • sql 查询结果合并union all用法_数据库技巧

    sql 查询结果合并union all用法_数据库技巧

    sql语句查询结果合并union all用法_数据库技巧,需要的朋友可以参考下。
    2009-11-11
  • 浅谈数据库优化方案

    浅谈数据库优化方案

    这篇文章主要为大家详细介绍了数据库优化方案,具有一定的参考价值和实用性,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • Sqlserver 常用日期时间函数

    Sqlserver 常用日期时间函数

    Sqlserver中经常要操作一些时间类型的字段转换,我又不太记得住,记在这里方便自己以后要用的时候寻找,望对大家也有帮助.
    2010-06-06

最新评论