sqlserver性能调优方法论与常用工具

sqlserver性能调优方法论与常用工具,第1张

概述早期的文章中,曾经提到过性能调优中的DETECT方法论,这里先简单回顾一下DETECT方法论。 Discover the problem :发现问题 Explore the conditions:探究原因 Track down possible approaches:提供可能解决的方式 Execute the most likely approach:执行最好可能的解决方式 Check of su @H_301_6@早期的文章中,曾经提到过性能调优中的DETECT方法论,这里先简单回顾一下DETECT方法论。

@H_301_6@

@H_301_6@discover the problem :发现问题

@H_301_6@Explore the conditions:探究原因

@H_301_6@Track down possible approaches:提供可能解决的方式

@H_301_6@Execute the most likely approach:执行最好可能的解决方式

@H_301_6@Check of success :确认是否成功(如果没有成功,反复执行上面的步骤)

@H_301_6@TIE up loose ends :完成剩余工作

@H_301_6@

@H_301_6@首先看 discover ,发现问题

@H_301_6@是否已经简洁的描述了整个问题?

@H_301_6@用户当前的基线在哪里?

@H_301_6@用户期望的是什么?

@H_301_6@并不是所以的问题都可以解决的

@H_301_6@

@H_301_6@再看Explore,探究原因

@H_301_6@取得证据

@H_301_6@

sqlProfiler跟踪 /sql Trace DMV 和 DMF ShowPlan执行计划输出 各种系统的性能计数器 sqlserver特有的性能计数器 @H_301_6@

@H_301_6@检查最明显的问题(探究问题先不要深入)

@H_301_6@ 

@H_301_6@Track down  提供可能的解决方式

@H_301_6@第一阶段,建立证明假设的计划

@H_301_6@第二阶段,建立解决问题的计划

@H_301_6@

@H_301_6@执行最有可能的解决方案

@H_301_6@第一阶段,执行测试计划来证明你的假设

@H_301_6@第二阶段,执行解决问题的方案

@H_301_6@

@H_301_6@Check,确认成功与否

@H_301_6@第一阶段

@H_301_6@你的计划证明了你的假设,还是推翻了他?

@H_301_6@第二阶段

@H_301_6@

你的计划是否改变了现象? 瓶颈是否转移了? 解决方案是否符合你原先的目标? @H_301_6@

@H_301_6@记住:该过程通常是递归反复执行的

@H_301_6@

@H_301_6@TIE up 完成剩余工作,收尾

@H_301_6@

性能调优是否达会有无法预计的边际效应? 所做的修改是否真正解决了问题,会不会短时间又碰到相同问题? 还需要做哪些跟踪的工作? @H_301_6@

@H_301_6@

@H_301_6@上面说了那么方法论,虽然很枯燥,但是还是有指导意义的。下面来点实际的知识。

@H_301_6@

@H_301_6@瓶颈分析

@H_301_6@瓶颈的定义

@H_301_6@瓶颈=需求达到的速率>实际处理量

@H_301_6@流程:

@H_301_6@

决定是卡在哪一个点上 决定在队列中等待的状况 减少输入(需求达到的速率)或是增加同时的处理量 决定收益 决定成本
常见瓶颈的监视任务
@H_301_6@

@H_301_6@

监视内存占用 监视线程和cpu使用 监视硬盘IO 监视低性能查询 监视存储过程、sql和用户活动 监视当前锁定和用户互动 @H_301_6@

@H_301_6@建立性能调优的计划

@H_301_6@性能调优是反复的过程,一而再,再而三的循环,一次又一次趋近的修正,要利用文字记录以说明

@H_301_6@

理出头绪,突显问题并证明 系统的逼近目标 有共识,知道彼此谈论的标地 能够汇总比较 当系统出现的多个瓶颈,找出最关键的,成本最低的先执行调优 @H_301_6@

@H_301_6@执行性能调优的计划时,要确定对线上生产环境的影响

@H_301_6@

@H_301_6@方法论--缩小

@H_301_6@


@H_301_6@

@H_301_6@

@H_301_6@性能调优中常用的工作

@H_301_6@

@H_301_6@

windows事件查看器 windows系统监视器 SSMS中的当前活动窗口 T-sql工具 sql Profiler 查询分析器 数据库引擎优化顾问 @H_301_6@

@H_301_6@windows事件查看器,主要是查看以下的事件日志

@H_301_6@

windows应用程序日志 windows系统日志 windows安全日志 @H_301_6@

@H_301_6@windows系统监视器能够跟踪:

@H_301_6@

sql server I/O sql server 内存 sql server用户 sql server 锁 复制活动 @H_301_6@

@H_301_6@

@H_301_6@SSMS中的活动监视器:

@H_301_6@

活动用户任务 资源等待 数据文件I/O 耗费大量资源的查询 @H_301_6@

@H_301_6@T-sql工具:

@H_301_6@

系统存储过程 全局变量 T-SQL语句 DBCC 跟踪标记 DMF/DMF @H_301_6@

@H_301_6@

@H_301_6@sql Profiler,跟踪并捕获sqlserver事件

@H_301_6@

选择需要跟踪的事件 选择跟踪模版 选择需要捕获的数据 有意义对数据进行分类 @H_301_6@

@H_301_6@查询分析器

@H_301_6@

显示查询执行计划 显示服务器跟踪 显示服务器端统计信息 显示客户端统计信息 @H_301_6@

@H_301_6@数据库引擎优化顾问

@H_301_6@

分析瓶颈 给出建议SQL语句(索引和统计信息) 总结

以上是内存溢出为你收集整理的sqlserver性能调优方法论与常用工具全部内容,希望文章能够帮你解决sqlserver性能调优方法论与常用工具所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1166062.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存