SQL Server Sql语句与存储过程查询数据的性能测试实现代码
2022-11-12 09:50:38
内容摘要
这篇文章主要为大家详细介绍了SQL Server Sql语句与存储过程查询数据的性能测试实现代码,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
文章正文
这篇文章主要为大家详细介绍了SQL Server Sql语句与存储过程查询数据的性能测试实现代码,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
一.建立数据库Liezui_TestID int 主键 自增Title varchar(100)ReadNum int二.向数据库中插入100万条数据 declare @i intset @i=1while @i<=500000begininsert into Liezui_Test(Title,ReadNum) values('执行总数统计',@i)set @i=@i+1endGOdeclare @i intset @i=1while @i<=500000begininsert into Liezui_Test(Title,ReadNum) values('毛巾因经常处于潮湿状态而极易滋生有害细菌',@i)set @i=@i+1endGO三.增加SelectByTitle存储过程 Create PROCEDURE [dbo].[SelectByTitle]ASBEGINSelect 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 Label252ms 48ms39ms 46ms45ms 44ms43ms 42ms37ms 40ms43ms 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 Label2161ms 192ms205ms 191ms142ms 208ms153ms 198ms134ms 209ms280ms 335ms结论:用存储过程的速度居然比直接用Sql语句还要慢.注:关于SQL Server Sql语句与存储过程查询数据的性能测试实现代码的内容就先介绍到这里,更多相关文章的可以留意
代码注释