32 位 SQLServer 未启用 AWE。缓冲区缓存命中率高,磁盘读取队列非常高,为什么?

32 位 SQLServer 未启用 AWE。缓冲区缓存命中率高,磁盘读取队列非常高,为什么?

我们有一个“SQLServer 2005 SP3 32位企业版”,运行在32位Windows 2003 32位企业版12GB RAM上,并使用RAID5(5个物理磁盘)启用了AWE。

今天下午下班后我们将AWE调整为启用状态并重新启动了sqlserver,希望性能会比以前更好。

但有一件事让我们很困惑。

工作日的时候,SQLServer的性能非常差,在查找原因的时候,我们查看了Windows性能计数器。

Avg. Disk Read Queue Lenght > 140
Avg. Disk Write Queue Length < 1
SQL Server Buffer Cache Hit Ratio > 96%
%Processor Time < 30%
SQL Server Total Server Memory < 1.8G

显然,如果不启用AWE,SQL Server只能使用不到2G内存。我的问题是:

  1. 为什么“SQL Server 服务器总内存”小于 2G?我认为 SQL Server 将使用所有 2G 进程地址空间。这个计数器计算出什么了吗?
  2. 我们知道SQL Server内存不足,但是为什么“缓冲区命中率”高达96呢?

欢迎任何建议!

答案1

要利用额外的 RAM,您需要启用 PAE 和 AWE。
http://support.microsoft.com/?kbid=283037

此外,您应该允许运行 SQL 服务的帐户使用“锁定内存中的页面”选项。
http://msdn.microsoft.com/en-us/library/ms190730.aspx

缓冲区缓存命中率值并没有超出范围。通常,您希望该数字 > 95%。但是,该计数器很难读取,因为它很大程度上取决于有多少 DB 中发生了多少不同的事情以及有多少 I/O 排队(一次全部排队)。Simple-Talk 的 Jonathan Kehayias 很好地讨论了这个主题。

SQL Server 大辩论:缓冲区缓存命中率乔纳森·凯哈亚斯
http://www.simple-talk.com/sql/database-administration/great-sql-server-debates-buffer-cache-hit-ratio/

答案2

也许我遗漏了什么,但这似乎是磁盘争用的问题。raid 5 阵列上有什么?临时文件、用户数据库、事务日志?

相关内容