Sql语句与存储过程查询数据的性能测试实现代码
网络编程 2021-07-05 13:42www.168986.cn编程入门
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 10000 from Liezui_Test where Title Like '%执行%'
END
三.开始测试
在页面内放一个repeater 用于绑定数据 二个label 用于显示结果
测试场景一 : 不绑定Repeater,只进行数据库源的绑定
代码如下
Swatch st = new Swatch();
st.Start();
Repeater1.DataSource = Jinlong.Data.DBHelper.ReturnDataSet("Select 10000 from Liezui_Test where Title Like '%执行%'").Tables[0];
st.S();
Label1.Text = st.ElapsedMilliseconds.ToString() + "ms";
Swatch st2 = new Swatch();
st2.Start();
SqlParameter[] para = { };
Repeater1.DataSource = Jinlong.Data.DBHelper.RunProcedure("SelectByTitle", para, "ds");
st2.S();
Label2.Text = st2.ElapsedMilliseconds.ToString() + "ms";
结果如下
Label1 Label2
52ms 48ms
39ms 46ms
45ms 44ms
43ms 42ms
37ms 40ms
43ms 44ms
结论用Sql语句和存储过程的速度差不多.
测试场景二 : 绑定Repeater
代码如下
Swatch st = new Swatch();
st.Start();
Repeater1.DataSource = Jinlong.Data.DBHelper.ReturnDataSet("Select 10000 from Liezui_Test where Title Like '%执行%'").Tables[0];
Repeater1.DataBind();
st.S();
Label1.Text = st.ElapsedMilliseconds.ToString() + "ms";
Swatch st2 = new Swatch();
st2.Start();
SqlParameter[] para = { };
Repeater1.DataSource = Jinlong.Data.DBHelper.RunProcedure("SelectByTitle", para, "ds");
Repeater1.DataBind();
st2.S();
Label2.Text = st2.ElapsedMilliseconds.ToString() + "ms";
结果如下
Label1 Label2
161ms 192ms
205ms 191ms
142ms 208ms
153ms 198ms
134ms 209ms
280ms 335ms
结论用存储过程的速度居然比直接用Sql语句还要慢.
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 10000 from Liezui_Test where Title Like '%执行%'
END
三.开始测试
在页面内放一个repeater 用于绑定数据 二个label 用于显示结果
测试场景一 : 不绑定Repeater,只进行数据库源的绑定
代码如下
Swatch st = new Swatch();
st.Start();
Repeater1.DataSource = Jinlong.Data.DBHelper.ReturnDataSet("Select 10000 from Liezui_Test where Title Like '%执行%'").Tables[0];
st.S();
Label1.Text = st.ElapsedMilliseconds.ToString() + "ms";
Swatch st2 = new Swatch();
st2.Start();
SqlParameter[] para = { };
Repeater1.DataSource = Jinlong.Data.DBHelper.RunProcedure("SelectByTitle", para, "ds");
st2.S();
Label2.Text = st2.ElapsedMilliseconds.ToString() + "ms";
结果如下
Label1 Label2
52ms 48ms
39ms 46ms
45ms 44ms
43ms 42ms
37ms 40ms
43ms 44ms
结论用Sql语句和存储过程的速度差不多.
测试场景二 : 绑定Repeater
代码如下
Swatch st = new Swatch();
st.Start();
Repeater1.DataSource = Jinlong.Data.DBHelper.ReturnDataSet("Select 10000 from Liezui_Test where Title Like '%执行%'").Tables[0];
Repeater1.DataBind();
st.S();
Label1.Text = st.ElapsedMilliseconds.ToString() + "ms";
Swatch st2 = new Swatch();
st2.Start();
SqlParameter[] para = { };
Repeater1.DataSource = Jinlong.Data.DBHelper.RunProcedure("SelectByTitle", para, "ds");
Repeater1.DataBind();
st2.S();
Label2.Text = st2.ElapsedMilliseconds.ToString() + "ms";
结果如下
Label1 Label2
161ms 192ms
205ms 191ms
142ms 208ms
153ms 198ms
134ms 209ms
280ms 335ms
结论用存储过程的速度居然比直接用Sql语句还要慢.
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程