• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > Sql语句与存储过程查询数据的性能测试实现代码

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

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了Sql语句,存储过程等相关知识,希望本文的分享对您有所帮助

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语句还要慢.
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 浅析mysql 语句的调度优先级及改变
  • SQL语句中SUM与COUNT的区别深入分析
  • 用SQL实现统计报表中的"小计"与"合计"的方法详解
  • 基于sql语句的一些常用语法积累总结
  • Mysql跨表更新 多表update sql语句总结
  • PHP5 mysqli的prepare准备语句使用说明
  • 规范化的SQL数据修改语句总结
  • 在MySQL数据库中使用C执行SQL语句的方法
  • 工作中常用的mysql语句分享 不用php也可以实现的效果
  • SQL语句详解 MySQL update的正确用法

相关文章

  • 2018-12-05MySQL基础教程9 — 函数之日期和时间函数
  • 2018-12-05关于漂流记的10篇文章推荐
  • 2018-12-05sql图形化操作设置级联更新和删除
  • 2017-09-02Mysql修改默认数据目录
  • 2018-12-05ORACLE 报警日志如何查看?第1/2页
  • 2018-12-05找到活动的SQL连接,并杀掉它!
  • 2018-12-05MySQL索引的索引长度问题具体介绍
  • 2017-05-11MySQL存储引擎简介及MyISAM和InnoDB的区别
  • 2017-05-11MySQL查询随机数据的4种方法和性能对比
  • 2017-05-11深入JDBC sqlserver连接写法的详解

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • SQLServer 2008中的代码安全(五) 非对称密钥加密
    • win10下如何安装两个MySQL5.6.35?
    • MySQL服务器进程CPU占用100%的解决方法
    • 如何使用Spring boot操作mysql数据库
    • 有关mysql的一些小技巧
    • MySQL事务编程性能和问题分析 [开发必看]
    • 基于mysql数据库的密码问题详解
    • Ubuntu配置Mysql主从数据库
    • 详解MySQL数据库设置主从同步的方法
    • 详解介绍MySQL5.6.31 winx64.zip安装配置的图文教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有