zoukankan      html  css  js  c++  java
  • 浅谈服务器的压力解决方案

    一般情况下,我们是从数据层级别(MSSQL2000为例) 经过逻辑层级别(IIS)的处理后发送到客户端去.

    那么,解决的方案就有三种级别:

    1. 优化数据库
    2. 优化代码
    3. 使用静态


    一.数据库优化:
       1) 合理的设计索引,正确的使用索引;
       2) 对于不重要的数据,采有with(nolock) 锁 能提高读取的效率,重要的就采用事务吧;
       3) 根据执行计划来查找耗时关键点,总执行成本高于0.01的话就比较危险了,如果是千万级的数据最好要重新设计索引或表结构;
       4) 尽量使用SP,而不是让Sql裸奔.
       5) 如果一个表实在是太大(超级千万)并且在未来很短的时间内有增加的趋势,那么就最好要采用分表

    二 代码的优化:
       1) 一次性读取用户数据,避免每调一次就读一次数据库的情况(这算不上优化,应该就是错误的写法,我有朋友是真的碰到过的).
     如:我们可以选取用户信息保存至UserModel里(UserInfo info = DAL.GetUserInfo(1)),然后通过调info.UserId,info.UserName等查询用户的信息,而不是userId = DAL.GetUserId,userName = DAL.GetUserName
       2) 合理正确的使用缓存.
     通过缓存类来保存一些全局的设定等,或是通过页面级缓存或是控件级的缓存减少服务器的压力(这个在Asp.Net是比较容易实现的).这里面就有个度的问题了.还要看你的服务器内存.如果是单服务器单站,嘿~~~
       3) 及时关闭非托管资源(比如文件的打开,数据库连接的打开,等)

    三 生成静态文件:
       1) 如果是经常用,更且不需要及时更新的数据内容,如榜单,友情链接,新闻等 ,可按一定的时间来重复生成静态的Js或是纯文本或是Html(其实都是文本内容)


        这三种方式各有优缺点,各有特色.
        数据库(比做赛车)优化是根本,数据库没有设计好,下面的都是假的,再好的代码也跑不起来!
        好代码就像是优秀的赛车手,好的赛车手+好的赛车跑起来,那叫杠杠的
        静态生成一般来说不是必要不要用.因为不是很灵活.但,它往往也是解决压力的关键.使数据库服务器和代码更好更快更高效的运行


        本人浅论,不足之处,欢迎指正.

    [一线风 最后修改于:2008-3-25 17:12:22]
  • 相关阅读:
    不用写代码的框架
    bat执行python脚本,执行多条命令
    VMware-workstation-full-15.1.0-13591040安装破解-附件密钥
    w10谷歌chrome关闭自动更新
    谷歌安装提示已经安装高版本解决
    python项目三方库导出导入 requirements.txt文件
    点阴影
    goto gamedev blog
    20135315-信息安全系统设计基础第五周学习总结
    win10 +python3.6环境下安装opencv以及pycharm导入cv2有问题的解决办法
  • 原文地址:https://www.cnblogs.com/atwind/p/1121579.html
Copyright © 2011-2022 走看看