SQL Server数据库优化实战(二)
2015-05-15 15:59
162 查看
前言:
本章主要介绍一下SQL Server Profiler(事件探查器),通过探查器,来分析语句运行的效果。
--SQL Server Profiler
['prəʊfaɪlə(r)]
事件探查器
SQL Profiler是一个图形界面和一组系统存储过程,其作用如下:
-图形化监视SQL Server查询;
-在后台收集查询信息;
-分析性能;
-诊断像死锁之类的问题;
-调试T-SQL语句;
-模拟重放SQL Server活动;
-也可以使用SQL Profiler捕捉在SQL
Server实例上执行的活动。这样的活动被称为Profiler跟踪。
1、Profiler跟踪
2、事件
一个事件表现SQLServer中执行的各种活动。
这些活动可以简单地分类为事件类:
--游标事件
--锁事件
--存储过程事件
--T-SQL事件
--资源压力
资源压力主要包含如下内容:
1、SQL活动涉及哪一类的CPU使用?
2、使用了多少内存?
3、涉及多少I/0操作?
4、SQL活动执行了多长时间?
5、特定的查询执行的频率有多高?
6、查询面对哪类错误和警告?
http://msdn.microsoft.com/zh-cn/library/ms175927%28v=sql.100%29.aspx
3、事件列
4、列筛选器
5、跟踪模板
6、跟踪数据
实战:
1、在客户最繁忙的时段进行跟踪(1-2小时,视情况而定,会有些客户的数据量非常大,可能只能跟踪30分钟左右,这样可以多次跟踪以达到目的。)
2、将跟踪的数据存为跟踪表。(大概20万左右的数据量,100家门店以上的客户一般30分钟就能达到这个值)
3、--前20个最耗CPU的单个语句
select top 20 * from sql_test(nolock) where textdata is not null order by cpu desc
(sql_test是刚才保存的跟踪表名)
4、--20个累计最耗CPU的语句
select top 20 substring(textdata,1,200),count(*),
SUM(cpu),SUM(cpu)/ COUNT(*)
from sql_test(nolock)
where textdata is not null
group by substring(textdata,1,200)
order by SUM(cpu) desc
5、分析CPU
一般来说,单次执行CPU耗费值
(单位ms,1000ms=1秒):
1000以下是比较少的。
1000-1W是比较多的。
5W以上是必须立即整改的。这是单个值耗费资源比较多的。
6、分析Duration
[djuˈreɪʃn]
一般来说,单次执行Duration耗费值
(单位ms,1000ms=1秒;
可设置为微秒,1秒=1000000微秒):
1000以下是处理时间较短的。
1000-1W是处理时间较长的。
5W以上是出现阻塞,必须查看原因的。
---------------------------华丽的分割线-----------------------------------
本章结束
本章主要介绍一下SQL Server Profiler(事件探查器),通过探查器,来分析语句运行的效果。
--SQL Server Profiler
['prəʊfaɪlə(r)]
事件探查器
SQL Profiler是一个图形界面和一组系统存储过程,其作用如下:
-图形化监视SQL Server查询;
-在后台收集查询信息;
-分析性能;
-诊断像死锁之类的问题;
-调试T-SQL语句;
-模拟重放SQL Server活动;
-也可以使用SQL Profiler捕捉在SQL
Server实例上执行的活动。这样的活动被称为Profiler跟踪。
1、Profiler跟踪
2、事件
一个事件表现SQLServer中执行的各种活动。
这些活动可以简单地分类为事件类:
--游标事件
--锁事件
--存储过程事件
--T-SQL事件
--资源压力
资源压力主要包含如下内容:
1、SQL活动涉及哪一类的CPU使用?
2、使用了多少内存?
3、涉及多少I/0操作?
4、SQL活动执行了多长时间?
5、特定的查询执行的频率有多高?
6、查询面对哪类错误和警告?
http://msdn.microsoft.com/zh-cn/library/ms175927%28v=sql.100%29.aspx
3、事件列
4、列筛选器
5、跟踪模板
6、跟踪数据
实战:
1、在客户最繁忙的时段进行跟踪(1-2小时,视情况而定,会有些客户的数据量非常大,可能只能跟踪30分钟左右,这样可以多次跟踪以达到目的。)
2、将跟踪的数据存为跟踪表。(大概20万左右的数据量,100家门店以上的客户一般30分钟就能达到这个值)
3、--前20个最耗CPU的单个语句
select top 20 * from sql_test(nolock) where textdata is not null order by cpu desc
(sql_test是刚才保存的跟踪表名)
4、--20个累计最耗CPU的语句
select top 20 substring(textdata,1,200),count(*),
SUM(cpu),SUM(cpu)/ COUNT(*)
from sql_test(nolock)
where textdata is not null
group by substring(textdata,1,200)
order by SUM(cpu) desc
5、分析CPU
一般来说,单次执行CPU耗费值
(单位ms,1000ms=1秒):
1000以下是比较少的。
1000-1W是比较多的。
5W以上是必须立即整改的。这是单个值耗费资源比较多的。
6、分析Duration
[djuˈreɪʃn]
一般来说,单次执行Duration耗费值
(单位ms,1000ms=1秒;
可设置为微秒,1秒=1000000微秒):
1000以下是处理时间较短的。
1000-1W是处理时间较长的。
5W以上是出现阻塞,必须查看原因的。
---------------------------华丽的分割线-----------------------------------
本章结束
相关文章推荐
- SQL Server数据库优化实战(一)
- SQL Server数据库优化实战(三)
- Mongodb 实战优化
- 转载:SQL Server数据库性能优化之SQL语句篇 (转)
- iOS性能优化:Instruments使用实战
- 50种方法巧妙优化SQL Server数据库
- 客户端性能优化实战经验分享
- SEO优化实战经验总结:内链的优化
- Java Web 高性能开发,第 3 部分: 网站优化实战
- 【java】itoo项目实战之百万数据查询优化收集与实践
- mysql性能优化学习与实战-1
- 16、Django实战第16天:优化url
- sql优化实战:从300秒+到10秒(调整参数)
- Java------------JVM(Java虚拟机)优化大全和案例实战
- Mysql性能优化实战
- iOS性能优化:Instruments使用实战
- SQL Server数据库性能优化案例
- UNITY3d在移动设备上的一些优化实战(一)-概述
- 50种方法巧妙优化你的SQL Server数据库(摘抄)
- Android UI性能优化实战 识别绘制中的性能问题