HOME    SITEMAP   CONTACT US
  • 网站建设首页
  • 关于我们
  • 产品服务
  • 供求信息
  • 综合资讯
  • 区域公司
  • 成功案例
  • 客服中心
  • 网站基础建设
        域名注册
        虚拟主机
        企业邮局
        网站建设
      
        800商务平台
      
        点金商务引擎

        网站推广
    • 中国信息网 - 新闻中心 - 网络基础知识 - 浏览信息
    • 网站建设技术篇-是否应避免使用eof

    • http://www.ecne.net.cn  更新时间:2007-8-22 16:31:31
    • 标签:ASP优化 执行效率 网站优化 

      我们在操作数据库,循环记录并打印在网页上的时候,通常通过判断 记录游标是否到达最后一条记录之后来决定是否结束循环,以ASP代码为例
      while not rst.eof
          response.Write("1")
          rst.movenext
      wend
      可以看出,上面的循环体每循环一次都需要做一次 eof 判断。从理论上分析,当有大量记录循环时,应该会给服务器带来较大负担。如果能够避免使用eof的话,是否能够获得更好的效率呢?俗话说:实践出真知。下面进行了一下测试,来比较一下执行速度。
      测试环境:ASP    数据库:Access    记录数:3000条   
      代码分别如下:
      第一种方式:采用eof判断
      for j=0 to 100
          set rst=server.CreateObject("adodb.recordset")
       sql="select * from biao"
          rst.open sql,conn,1,1
       while not rst.eof
       response.Write("1")
       rst.movenext
       wend
          rst.close
       set rst=nothing
      next


      第二种方式:采用先获得记录数再循环
      for j=0 to 100
          set rst=server.CreateObject("adodb.recordset")
       sql="select * from biao"
       rst.open sql,conn,1,1
       c=rst.recordcount
       for i=1 to c
       response.Write("1")
       rst.movenext
       next
       rst.close
       set rst=nothing
      next

      为了能减少误差,在循环体外部分别又循环了50次和100次

      以下是测试结果   单位 秒
      第一种方式                第二种方式
      外部循环50次          
      03.8125                      03.5938
      03.7969                      03.5313
      03.8750                      03.5156
      03.8438                      03.5313
      03.8125                      03.5313
      外部循环100次          外部循环100次
      07.5781                      07.4531
      07.5625                      08.1875
      07.6563                      07.3125
      07.5625                      06.9844
      07.6094                      07.0469
      07.6719                      07.0313
      07.6875                      06.9531
      07.8438                      06.9844

      根据结果,第二种方式确实执行更快一些,不过对于大多数的企业网站来说,一般产品记录不会超过1000条,在这样的数据量下,这两种方式区别就很小了。

      作者:中国信息网网站建设
      版权所有,转载请以链接形式注明作者及原始出处。

       

    上一篇:网站建设维护之photoshop图片处理模式篇
    下一篇:google天涯携手开通天涯问答对抗百度知道

    • --参予评论--

    • 您的称呼:
    • 内    容:
    • 验证码:
      中国信息网(c)2003-2005 版权所有 运营单位:联信信息科技有限公司  联系电话:0532-83864605
      本站中文域名:中国信息网.biz
        备案号:鲁ICP备05004362