数据库:sql server2000
数据库数据文件大于:64GB
内存:4GB
CPU:intel(R) Xeon(TM) 3.0HZ x 4片SQL Sever相关设置如下:
Memory设置
   点选 Dynamically configure SQL Server memory
   Minimum query memory(KB) 3072processor  
  Minimum query plan threshold for considering queries
  for parallel execution(cost estimate):5具体情况:
      有时查询任何表的数据都变得很慢,出现这种情况后,我重启服务后又会变得很快。
一天我要重启好几次服务。
有没有人能帮我诊断一下,能不能我的高运行效率稳定一点。
谢谢
  

解决方案 »

  1.   

    64G的DB,以你的SERVER的配置, I/O ,内存肯定都存有瓶颈。
      

  2.   

    如何开3GB选项呢,是指OS的设置吗?
      

  3.   

    SQL SERVER性能优化综述
    (http://blog.csdn.net/Haiwer/archive/2008/08/25/2826881.aspx)五种提高 SQL 性能的方法
    (http://topic.csdn.net/u/20080509/10/c9bee345-3f57-4632-a84d-1673b1e96bf8.html)SQL Server 优化性能的几个方面
    http://topic.csdn.net/u/20100424/18/b74ba5bc-b2b6-44af-979a-74c835d6647c.html?41904
      

  4.   

    使用raid0+1tempdb,data file,log file分开存放以减少I/O竞争
      

  5.   

    跟踪一下到底是在运行些什么SQL,看结构设计是否合理,谁能笼统地回答?
      

  6.   

    3Gx4的cpu,内存怎么才4G?很不匹配啊数据64G,内存这么点,加载索引都可能不够啊
      

  7.   

       一般情况下,运行效率挺高的,只是有时突然变得很慢,我看了监控器,内存没有用完,cpu也才用到20%左右,就是查询变得很慢很慢,所以只能重启service了,这样就可以搞定了,但总这样子弄,用户会有意见呀。
      

  8.   


    32位下SQL Server最多吃到2G的内存,所以你会发现内存没用完啊。
      

  9.   

    不是多余是用不到
    打开3g开关
    boot.ini[boot loader]
    timeout=5
    default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
    [operating systems]
    multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /noexecute=optout /fastdetect /3g
      

  10.   

    32位要使用4G以上的内存,要启用awe
    使用2-3G,要启用3gb
      

  11.   

    那你要看看你的语句,查询的那个表是不是数据量大,或者你是用嵌套查询,导致死锁啥的。并不一定全是服务器的问题。有必要的话备份一下你的历史数据,少用like少用in。
      

  12.   

    32位要使用4G以上的内存,要启用awe
    使用2-3G,要启用3gb打开3g开关
    boot.ini[boot loader]
    timeout=5
    default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
    [operating systems]
    multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /noexecute=optout /fastdetect /3g
    --
      

  13.   


    从你的说法可以看出一些问题:
    内存偏小,尽管如你所说,内存没有用完,基于你分配给sql server的内存偏小.造成频繁的磁盘读写,你可以打开管理工具->性能 工具然后查看一下physical disk里面的每秒读写,如果读超过1m,并且有队列情况,就说明你的数据库磁盘读写很厉害.要解决问题其实很多方法:
    1.最快的方式就是加物理内存,然后加大分配给sql server的内存.可以临时性改善性能
    2.搜索并排序 按照reads数量排序,找出最耗费资源的sql(不知道查询怎么写就是用dash board,这个是Microsoft的小工具),看看执行计划是否已经优化,如果没有,那么就要针对该sql做修改或者建立索引.
    3.比较大的表你可以考虑使用分区,能够极大改善性能.做好这几点,再考虑其他的优化方法.有关优化的话题太多,但上面的几点能够帮你较快解决问题.