我正在阅读“SQL Server 2008 Query Performance Tuning Distilled”一书,发现它对 perf mon 指标的描述在某些情况下有点含糊。我将列出它涵盖的所有指标,以及我对每个指标的理解。我想在必要时进行澄清。正如我的评论所暗示的,主要是我正在寻求帮助的项目#2、6 和 7。
- 可用字节数:可用物理内存。不言自明
- 页面/秒和页面错误/秒:99% 清除。唯一的问题是为什么页面可能会在内存中从一个位置交换到另一个位置(软故障)。
- Buffer Cache Hit Ratio:新请求的内存立即可用的频率。似乎很清楚,虽然可能名字不好。我想知道它是否应该被称为“缓冲池免费命中率”。
- Page Life Expectancy:此缓冲池缓存指标由缓存命中频率和可用内存控制。似乎比较清楚。
- Lazy writes/sec:将脏缓冲区写入磁盘的速率。似乎比较清楚。
- Memory Grants Pending:“SQL Server 内存中等待内存授予的进程数”。奇怪的。不应该只有一个进程与 SQL Server 内存相关联吗?不清楚!
- 目标/总服务器内存:据说“如果总服务器内存远小于目标服务器内存……那么可能是最大服务器内存配置参数设置得太低。” 有点不清楚。为什么有两个设置 -
target server memory
和max server memory
- 控制 SQL Server 内存使用量的总和?是因为“total”是针对所有数据库实例的组合,而“max”是针对每个单独的数据库吗?
我的一个总体问题可能与第 7 项有关,当每个数据库实例配置为(几乎)所有可用物理内存的最大内存使用量时会发生什么?我认为 SQL Server 不会向它托管的每个实例授予那么多,并且会根据需要自行平衡?它比这更复杂吗?