耗资源了你们帮我处理下-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

耗资源了你们帮我处理下

2018-02-21 05:50:33 522 1
取消 提交回答
全部回答(1)
  • 2018-02-26 18:10:40
    已采纳

    详细解答可以参考官方帮助文档

    问题描述

    独享云虚拟主机与共享云虚拟主机出现耗资源cpu跑满,或者因为耗资源被关停。

    问题原因

    1、程序出现死循环。

    2、程序有嵌套查询。

    3、采用access数据库,数据库较大。

    4、数据库索引较差。

    以上问题都会引起服务器资源浪费,甚至耗资源异常情况。

    解决方案

    1.程序死循环。

    1. 出现死循环很多情况下是因为程序缺少必要的检测和判断条件导致,这种情况需网站开发对站点程序的代码进行检查和完善。

    2.程序有嵌套查询

    1. 嵌套查询代码示例:
    2. sql = "select * from a"
    3. set rs = server.createobject("adodb.recordset")
    4. rs.open sql,conn,1,1
    5. while not rs.eof
    6. sql2 = "select * from b where fid=" & rs("id")
    7. set rs2 = server.createobject("adodb.recordset")
    8. rs2.open sql2,conn,1,1 '使用嵌套查询,效率会出现下降
    9. while not rs2.eof
    10. response.write rs("id") & "=" & rs2("name")
    11. rs2.movenext
    12. wend
    13. rs.movenext
    14. wend
    15. 嵌套查询会造成数据库的查询量呈指数级上升,导致一个程序的效率非常低,上面的程序如果改为连表操作,查询数据库的次数会少很多,并且在设计数据库的时候应该将 b 表的 fid 字段建立索引,否则连表查询的时候性能会差很多。
    16. <%
    17. sql = "select a.id ,b.name from a left join b on b.id=a.id" '使用连表操作,并用具体的字段名代替 *,程序是高效很多
    18. set rs = server.createobject("adodb.recordset")
    19. rs.open sql,conn,1,1
    20. while not rs.eof
    21. response.write rs("id") & "=" & rs("name")
    22. rs.movenext
    23. wend
    24. %>

    3.网站采用 access 数据库,数据库的容量比较大

    1. 如果采用access数据库,当数据库的容量比较大(比如超过 100M 以上),性能就可能会出现问题,所以访问量大的网站一般都采用 sqlservermysqloracle 等性能比较高的数据库引擎。

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

    1. 一个表至少有一个主键和N个外键,一般主键作为表的唯一标识。当检索数据时,如果以主键的值来进行查找的话效率会比较高,而一些标志性的字段,如产品表的产品所属分类、用户表的用户等级等,如果在程序中经常要用到这些字段来进行检索数据,那么一般应该为这些字段建立索引,这样检索数据的时候性能会好很多。
    0 0
相关问答

1

回答

[@徐雷frank][¥20]十亿条数据级的关系型数据库,如何能达到最高效的处理?

2018-12-12 20:55:37 1548浏览量 回答数 1

3

回答

沙克麦尔资源素材下载

2012-08-08 17:07:40 8524浏览量 回答数 3

0

回答

重启IIS7应用程序池的批处理

2015-01-27 21:52:58 6048浏览量 回答数 0

1

回答

页面编码和被请求的资源编码如果不一致如何处理?

2019-11-25 14:44:46 1166浏览量 回答数 1

1

回答

如何查看DDH资源?

2020-03-30 13:23:17 503浏览量 回答数 1

0

回答

高速通道搭建的混合云环境,云上资源在调用机房服务时,偶发大量-7或-28返回码

2020-10-27 13:43:07 273浏览量 回答数 0

1

回答

在异常处理中,如释放资源、关闭文件、关闭数据库等由什么来完成?

2021-11-01 20:44:48 360浏览量 回答数 1

1

回答

ORM中怎样才可以批量处理数据呢?

2021-11-05 18:13:32 207浏览量 回答数 1

1

回答

我在使用独享数据集成资源组的时候,新增数据源sftp的时候报错了请问要怎么处理?

2022-09-08 11:03:38 80浏览量 回答数 1
问答排行榜
最热
最新
相关电子书
更多
《阿里云资源保障服务,让您从容应对资源波峰》
立即下载
基于异构计算资源的编译优化
立即下载
低代码开发师(初级)实战教程
立即下载