VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 数据库 > sql数据库 >
  • sql语句大全之sqlserver性能调优方法论与常用工具

早期的文章中,曾经提到过性能调优中的DETECT方法论,这里先简单回顾一下DETECT方法论。
 
 
 
Discover the problem :发现问题
 
Explore the conditions:探究原因
 
Track down possible approaches:提供可能解决的方式
 
Execute the most likely approach:执行最好可能的解决方式
 
Check of success :确认是否成功(如果没有成功,反复执行上面的步骤)
 
Tie up loose ends :完成剩余工作
 
 
 
首先看 Discover ,发现问题
 
是否已经简洁的描述了整个问题?
 
用户当前的基线在哪里?
 
用户期望的是什么?
 
并不是所以的问题都可以解决的
 
 
 
再看Explore,探究原因
 
取得证据
 
SqlProfiler跟踪 /Sql Trace
DMV 和 DMF
ShowPlan执行计划输出
各种系统的性能计数器
sqlserver特有的性能计数器
检查最明显的问题(探究问题先不要深入)
 
 
 
Track down  提供可能的解决方式
 
第一阶段,建立证明假设的计划
 
第二阶段,建立解决问题的计划
 
 
 
执行最有可能的解决方案
 
第一阶段,执行测试计划来证明你的假设
 
第二阶段,执行解决问题的方案
 
 
 
Check,确认成功与否
 
第一阶段
 
你的计划证明了你的假设,还是推翻了他?
 
第二阶段
 
你的计划是否改变了现象?
瓶颈是否转移了?
解决方案是否符合你原先的目标?
记住:该过程通常是递归反复执行的
 
 
 
Tie up 完成剩余工作,收尾
 
性能调优是否达会有无法预计的边际效应?
所做的修改是否真正解决了问题,会不会短时间又碰到相同问题?
还需要做哪些跟踪的工作?
 
 
上面说了那么方法论,虽然很枯燥,但是还是有指导意义的。下面来点实际的知识。
 
 
 
瓶颈分析
 
瓶颈的定义
 
瓶颈=需求达到的速率>实际处理量
 
流程:
 
决定是卡在哪一个点上
决定在队列中等待的状况
减少输入(需求达到的速率)或是增加同时的处理量
决定收益
决定成本
 
常见瓶颈的监视任务
 
监视内存占用
监视线程和CPU使用
监视硬盘IO
监视低性能查询
监视存储过程、sql和用户活动
监视当前锁定和用户互动
建立性能调优的计划
 
性能调优是反复的过程,一而再,再而三的循环,一次又一次趋近的修正,要利用文字记录以说明
 
理出头绪,突显问题并证明
系统的逼近目标
有共识,知道彼此谈论的标地
能够汇总比较
当系统出现的多个瓶颈,找出最关键的,成本最低的先执行调优
执行性能调优的计划时,要确定对线上生产环境的影响
 
 
 
方法论--缩小
 
 
 
 
 
 
 
性能调优中常用的工作
 
 
 
windows事件查看器
windows系统监视器
SSMS中的当前活动窗口
T-SQL工具
Sql Profiler
查询分析器
数据库引擎优化顾问
windows事件查看器,主要是查看以下的事件日志
 
windows应用程序日志
windows系统日志
windows安全日志
windows系统监视器能够跟踪:
 
sql server I/O
sql server 内存
sql server用户
sql server 锁
复制活动
 
 
SSMS中的活动监视器:
 
活动用户任务
资源等待
数据文件I/O
耗费大量资源的查询
T-SQL工具:
 
系统存储过程
全局变量
T-SQL语句
DBCC
跟踪标记
DMF/DMF
 
 
Sql Profiler,跟踪并捕获sqlserver事件
 
选择需要跟踪的事件
选择跟踪模版
选择需要捕获的数据
有意义对数据进行分类
查询分析器
 
显示查询执行计划
显示服务器跟踪
显示服务器端统计信息
显示客户端统计信息
数据库引擎优化顾问
 
分析瓶颈
给出建议sql语句(索引和统计信息)
 
--------------------- 
作者:丁码农 
来源:CSDN 
原文:https://blog.csdn.net/dinglang_2009/article/details/46480859 
版权声明:本文为博主原创文章,转载请附上博文链接!

相关教程