当您怀疑计算机硬件是影响sql server运行性能的主要原因时,可以通过sql server performance monitor监视相应硬件的负载,以证实您的猜测并找出系统瓶颈。下文将介绍一些常用的分析对象及其参数。
memory: page faults / sec
如果该值偶尔走高,表明当时有线程竞争内存。如果持续很高,则内存可能是瓶颈。
process: working set
sql server的该参数应该非常接近分配给sql server的内存值。在sql server设定中,如果将"set working set size"置为0, 则windows nt会决定sql server的工作集的大小。如果将"set working set size"置为1,则强制工作集大小为sqlserver的分配内存大小。一般情况下,最好不要改变"set working set size"的缺省值。
process:%processor time
如果该参数值持续超过95%,表明瓶颈是cpu。可以考虑增加一个处理器或换一个更快的处理器。
processor:%privileged time
如果该参数值和"physical disk"参数值一直很高,表明i/o有问题。可考虑更换更快的硬盘系统。另外设置tempdb in ram,减低"max async io","max lazy writer io"等措施都会降低该值。
processor:%user time
表示耗费cpu的数据库操作,如排序,执行aggregate functions等。如果该值很高,可考虑增加索引,尽量使用简单的表联接,水平分割大表格等方法来降低该值。
physical disk:avg.disk queue length
该值应不超过磁盘数的1.5~2倍。要提高性能,可增加磁盘。
注意:一个raid disk实际有多个磁盘。
sqlserver:cache hit ratio
该值越高越好。如果持续低于80%,应考虑增加内存。 注意该参数值是从sql server启动后,就一直累加记数,所以运行经过一段时间后,该值将不能反映系统当前值。