一.建立数据库BigTest
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
三.开始测试
首先在页面内放一个repeater,一个DataList,一个GridView用于绑定数据 三个label 用于显示结果
首先测试repeater
代码如下:
DataTable dt = Jinlong.Data.DBHelper.ReturnDataTable("Select Top 10000 * From BigTest Where Title Like '%执行%'");
Stopwatch st = new Stopwatch();
st.Start();
Repeater1.DataSource = dt;
Repeater1.DataBind();
st.Stop();
Label1.Text = st.ElapsedMilliseconds.ToString() + "ms";
结果如下:
repeater:
94ms
151ms
141ms
146ms
131ms
94ms
132ms
然后测试DataList
DataTable dt = Jinlong.Data.DBHelper.ReturnDataTable("Select Top 10000 * From BigTest Where Title Like '%执行%'");
Stopwatch st2 = new Stopwatch();
st2.Start();
DataList1.DataSource = dt;
DataList1.DataBind();
st2.Stop();
Label2.Text = st2.ElapsedMilliseconds.ToString() + "ms";
结果如下:
DataList
139ms
90ms
159ms
113ms
136ms
137ms
87ms
最后测试Gridview
DataTable dt = Jinlong.Data.DBHelper.ReturnDataTable("Select Top 10000 * From BigTest Where Title Like '%执行%'");
Stopwatch st3 = new Stopwatch();
st3.Start();
GridView1.DataSource = dt;
GridView1.DataBind();
st3.Stop();
Label3.Text = st3.ElapsedMilliseconds.ToString() + "ms";
Gridview
326ms
339ms
450ms
297ms
311ms
275ms
360ms
结果对比
Repeater DataList GridView
94ms 139ms 326ms
151ms 90ms 339ms
141ms 113ms 450ms
146ms 136ms 297ms
131ms 137ms 311ms
94ms 139ms 275ms
132ms 87ms 360ms
结论:Repeater和DataList 差不多,GridView明显慢很多