Sea*_*ong 5 sql-server sql-server-2008-r2 compression
当系统不受 CPU 限制并且 95% 的响应看到响应时间减少时,我试图找出导致某些响应时间增加的原因,当数据通过页面压缩进行压缩时。
因此,我所做的是将其追踪到系统中发生的单个进程,并对该进程进行概要分析以确定在此过程中触发了哪些 SP 和 UFN。我最初的想法是我可以单独运行每个 SP 和 UFN 并查看查询计划以查看发生完整扫描的位置,这可能需要从压缩中解压缩数据并可能导致等待触发。
所以我现在拥有的是:
由于我必须对 35 个 SP/UFN 之类的东西进行分类,因此我想知道缩小原因的最有效方法是什么。根据我对系统的经验,我可以推断出某些 SP 比其他 SP 更有可能是罪魁祸首,但我想尝试以更科学的方式缩小范围。是否有任何工具或方法可以帮助我找出最有可能的罪犯?
如果我可以确定压缩时比不压缩时慢的对象,这将有助于我们了解页面压缩的策略。
科学方法基于定期收集过程和程序性能信息,无论是使用商业包还是更多的本土解决方案。您也可以从头开始从 Profiler 或扩展事件中收集信息。重要的是定期捕获数据,并使其易于使用(例如使用SSRS
)。
可用的历史信息可以轻松跟踪性能随时间的逐渐变化、在资源需求增加之前预测它们、诊断突然变化以及识别和测试需要改进的领域。
关于后一点,我相信你的方法应该是这样的:
ROW
和PAGE
压缩这比事后试图在复杂代码中追踪性能回归要容易得多,而没有可比较的基线。
如果您确定这 35 个可编程项是经过时间和缓存计划的配置文件/事件的组合以及sys.dm_exec_query_stats 的罪魁祸首应该可以帮助您了解问题所在。
不过,@Paul 关于记录基线的评论很重要。