香港虚拟主机
本站公告
新闻资讯
虚拟主机帮助
域名帮助
服务器帮助
邮箱帮助
建站帮助
网站推广帮助
VPS帮助
特色主机帮助
网站备案专题
会员帮助信息
代理帮助信息
成功案例
网站百度排名下跌怎么办 教你…
新站应该做到的十条SEO检查方…
怎么注册域名 如何注册域名 …
苍南富生工艺品有限公司-定制…
爱名网注册域名修改NS服务器…
阳光互联注册域名修改NS服务…
万网注册域名修改NS服务器地…
中国数据注册域名修改NS服务…
商务中国注册域名修改NS服务…
新网注册域名修改NS服务器地…
您现在的位置: 江南数联 >> 帮助中心 >> 虚拟主机帮助 >> 正文

网站程序有问题的常见原因

  作者:admin    来源:本站原创    点击次数:29     更新时间:2010-9-17 7:00:55  
     
 
关注石头有礼
 
 

网站程序有问题的常见原因

1.程序死循环。
 
  出现死循环很多情况下都是因为程序缺少必要的检测而导致的,
  
  比如 http://www.domain.com/show.asp?id=11 打开这个页面没有问题,

  而 http://www.domain.com/show.asp?id=12 就有问题,同样的程序,为什么

  会出现这样的问题呢?有很多程序员在写asp程序的时候,都喜欢用 On Error Resume Next

  这个语句来屏蔽掉错误,这样会导致程序出错时一直执行下去(死循环),比如当数据库里

  有id为11这条记录的时候,程序不会出问题,但当页面所传参数id为12,而数据库中又没有

  id为12这条记录的时候,页面就出错了,因为使用了 On Error Resume Next,页面

  并没有中止运行,而是一直运行下去,因为程序前面就已经出现了不合法的数据,所以后面就

  很容易因为前面没有正确的数据而死循环。

2.程序有嵌套查询

 比如以下程序就使用了嵌套查询
    <%
        sql = "select * from a"
        set rs = server.createobject("adodb.recordset")
        rs.open sql,conn,1,1
        while not rs.eof
                sql2 = "select * from b where fid=" & rs("id")
                set rs2 = server.createobject("adodb.recordset")
                rs2.open sql2,conn,1,1 '这里用了嵌套查询,效率会下降很多,如果数据库的时候根本没法运行
               
                    while not rs2.eof
                       
                        response.write rs("id") & "=" & rs2("name")
                       
                        rs2.movenext
                    
                     wend

                rs.movenext
        wend
      %>
      嵌套查询会导致数据库的查询量呈指数级上升,甚至会导致一个页面查询数据库的次数达到几百
     
      甚至几千次,这样会导致一个程序的效率非常低,像上面的程序如果改为连表操作,查询数据库的

      次数会少很多,并且在设计数据库的时候应该将 b 表的 fid 字段建立索引,否则连表查询的时候

      性能会差很多。

      <%
        sql = "select a.id ,b.name from a left join b on b.id=a.id" '使用连表操作,并用具体的字段名代替 *,程序是高效很多
        set rs = server.createobject("adodb.recordset")
        rs.open sql,conn,1,1
        while not rs.eof
                       
                response.write rs("id") & "=" & rs("name")
                       
                rs.movenext
        wend
      %>

3.网站采用 access 数据库,数据库的容量比较大
  
  对于网站应用来说,如果采用access数据库,当数据库的容量比较大(比如超过 100M 以上),

  性能就可能会出现问题,所以访问量大的网站一般都采用 sqlserver、mysql、oracle 等性能

  比较高的数据库引擎。

4.数据库的索引没键好。

  一般来说,一个表至少有一个主键和N个外键,一般主键作为表的唯一标识,当检索数据时,如果

  以主键的值来进行查找的话效率会比较高,而一些标志性的字段,如产品表的产品所属分类、用户

  表的用户等级等,如果在程序中经常要用到这些字段来进行检索数据,那么一般应该为这些字段建立

  索引,这样检索数据的时候性能会好很多。

本章关健词:江南数联 域名注册 海外虚拟主机 G享虚拟主机 国内虚拟主机 企业邮箱 网站建设 自助建站 400电话申请 微聚商

 
  版权申请:网站程序有问题的常见原因出自江南数联dns06.com未经授权请勿转载!  
 
  • 上一篇帮助:

  • 下一篇帮助:
  •  
         

    扫一扫关注公众号有礼
    Copyright@2004-2015 江南数联 版权所有未经授权请勿复制!
    《中华人民共和国增值电信业务经营许可证》ISP证编号:皖B2-20080036 湘B2-20160056
    公司全称:永州石头网络技术有限公司(运营部)
    地址: 中国·湖南省永州市育才路158号 服务热线:400 616 9260
    安徽公司:安徽仁科信息技术有限公司 地址:合肥万和新城广场A-608 
    关注词:网站空间虚拟空间空间域名域名空间域名主机网站空间哪家好网站空间多少钱