當您懷疑電腦硬體是影響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啟動後,就一直累加記數,所以運行經過一段時間後,該值將不能反映系統當前值。