我的服务器上的SQL处理能力好象有点低,CUP使用率一直在10%-20%之间,下面网络连接数量30多个,查询操作也很频繁!但是速度非常慢!为什么CUP使用率那么低,哪里能设置来提高SQL的处理能力?谢谢了!
服务器配置:
   CUP:双CUP 智强3。0
   内存:1G
   系统:WIN2000 ADVANCED SERVER 高级服务器版
   SQL:企业版,打了SP4补丁

解决方案 »

  1.   

    看看磁盘I/O和内存消耗, 这两个如果资源消耗高的话, 说明你的SQL和表结构不合理例如, 类似下面的情况会导致CPU低耗, 但内存和磁盘高耗:
    你的处理经常进行全表扫描, 则这会导致频繁的磁盘I/O的高的内存消耗
    该一条SQL能批量处理完成的情况, 你却要写几个SQL, 查出结果后再做判断, 分析及处理
      

  2.   

    我的程序查询其实就是几个简单的语句!大的查询在统计时才用,但是就是这么几个简单的语句~所有地方同时在用!但速度却很慢,有过一次,CUP使用达到了80%,速度非常快
      

  3.   

    -- 跟踪sql的执行情况
    开始--程序--MS SQLSERVER
    --事件探察器(SQL Profiler)
    --文件
    --新建--跟踪...
    --设置要跟踪的服务器的信息(连接服务器)--确定
    --设置跟踪的项目...
    --然后数据库的调用情况就会显示出来在跟踪项目设置中,如果不熟悉的话,一般用默认设置
    筛选项目有几个可以注意一下:1.DatabaseName 同于你要监测的数据库名(不过这个好像不起作用,我的电脑上设置无效)
    2.DatabaseID   同于你要检测的数据库的dbid,可以用 select db_id(N'你要监测的库名')得到dbid
    3.ObjectName   同于你要监测的对象名,例如表名,视图名等
    4.ObjectID     同于你要监测的对象的id,可以用 select object_id(N'你要监测的对象名')得到id
    5.Error        同于错误,如果经常出现某个编号的错误,则针对此错误号
    6.Seccess      同于0,失败,1,成功,如果是排错,就过滤掉成功的处理
      

  4.   

    查看BLOCK:查询分析器执行, 看看结果集中, blk列有没有不为0的, 如果有, 则表示有block
    sp_who
      

  5.   

    查询磁盘I/O及内存情况:
    开始--程序--运行--输入 taskmgr--确定在进程中, 看看 sqlserver.exe 这个进程的内存使用和磁盘I/O, I/O的这个, 默认下是没有的, 单击"查看"--选择列--把I/O相关的勾上就有了