计算机故障交流论坛
域名注册

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

发表时间:09-4-27   来源:计算机故障网   点击:

比较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 2008-2010, JSJGZ.CN, 计算机故障 Inc. All Rights Reserved

闽ICP备09000710号 增值电信业务经营许可证闽B2-20080004号 Rss订阅