首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查看Server缓存命中率?

如何查看Server缓存命中率?
EN

Server Fault用户
提问于 2009-08-08 09:40:47
回答 1查看 4K关注 0票数 2

我正在使用SQLServer2008Enterprise。我将向Server发出大量查询。我认为Server本身将在内部使用一些优化,比如将数据预取到Server内部数据缓存中,或者在从物理页面文件加载之前访问频繁的缓存请求数据,以提高性能。

有任何解决方案可以查看Server内部缓存命中率吗?或者优化缓存以提高查询性能的最佳实践?

谢谢你,乔治

EN

回答 1

Server Fault用户

发布于 2009-08-08 09:48:55

看看BOL:服务器,缓冲区管理器对象

首先您应该考虑的两个方面是:

  • 过程缓存是SQL存储查询计划的内存区域。
  • 缓冲区缓存是存储数据页的内存区域。

相关perfmon柜台:

  • 缓冲区缓存命中率
  • 页预期寿命
  • 页读取/秒

OLTP应用程序的顶级Server 2005性能问题包含以下内容:

CPU瓶颈如果…

  • 信号等待超过总等待量的25%。有关信号等待和总计等待,请参见sys.dm_os_wait_stats。信号等待测量运行队列中等待CPU的时间。高信号等待表明CPU瓶颈。
  • 计划重用率< 90%。查询计划用于执行查询。对于OLTP工作负载来说,计划重用是可取的,因为重新创建相同的计划(对于类似或相同的事务)是浪费CPU资源。将Server统计信息:批处理请求/秒与SQL编译/秒进行比较。计算计划重用如下:计划重用=(批处理请求- SQL编译)/批处理请求。计划重用规则的特殊例外:在SQL 2005 SP2中不会缓存(而不是重用)零成本计划。使用零成本计划的应用程序将有一个较低的计划重用,但这不是一个性能问题。
  • 并行等待类型cxpacket >总等待量的10%。并行性牺牲CPU资源以加快执行速度。由于OLTP的数量很大,因此并行查询通常会降低OLTP的吞吐量,因此应该避免。有关等待统计信息,请参见sys.dm_os_wait_stats。

内存瓶颈如果…

  • 页面平均预期寿命一直很低。请参阅Perfmon对象SQL Server缓冲区管理器中的“平均页面预期寿命计数器”(这表示页在缓存中停留的平均秒数)。对于OLTP,平均300页的预期寿命是5分钟。任何较少的内容都可能表示内存压力、缺少索引或缓存刷新。
  • 页面预期寿命突然大幅下降。OLTP应用程序(例如小事务)应该有一个稳定(或缓慢增长)的页面预期寿命。请参见Perfmon对象SQL Server缓冲区管理器。
  • 等待内存授权。请参阅Perfmon对象Server内存管理器中挂起的计数器内存赠款。小的OLTP事务不应该需要大的内存授权。
  • 突然下降或一致,SQL缓存命中率较低。OLTP应用程序(例如小事务)应该具有较高的缓存命中率。由于OLTP事务较小,因此不应(1) SQL缓存命中率大幅下降,也不应(2)缓存命中率始终低于90%。下降或较低的缓存命中可能表示内存压力或缺少索引。
票数 8
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/290248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档