比较Repeater,DataList,GridView的绑定效率


一.建立数据库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明显慢很多


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3