SQL Server数据库优化实战(二)

前言:

本章主要介绍一下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事件


--资源压力

资源压力主要包含如下内容:

1SQL活动涉及哪一类的CPU使用?

2、使用了多少内存?

3、涉及多少I/0操作?

4SQL活动执行了多长时间?

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耗费值

(单位ms1000ms=1秒):

1000以下是比较少的。

1000-1W是比较多的。

5W以上是必须立即整改的。这是单个值耗费资源比较多的。

6、分析Duration

[dju?re??n]

一般来说,单次执行Duration耗费值

(单位ms1000ms=1;

可设置为微秒,1=1000000微秒):

1000以下是处理时间较短的。

1000-1W是处理时间较长的。

5W以上是出现阻塞,必须查看原因的。

---------------------------华丽的分割线-----------------------------------

本章结束




郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。