码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2015-05-15 17:52:02      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:sql server   数据库   优化   事件探查器   sql server profiler   

前言:

本章主要介绍一下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以上是出现阻塞,必须查看原因的。

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

本章结束




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

标签:sql server   数据库   优化   事件探查器   sql server profiler   

原文地址:http://blog.csdn.net/yole_grise/article/details/45745525

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!