首页 > 数据库 > SQL Server > 正文
SQLServer数据库优化实战(二)
2015-05-16       个评论    来源:矫正的快乐人生  
收藏    我要投稿

前言:

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

点击复制链接 与好友分享!回本站首页
相关TAG标签 实战 数据库
上一篇:SQL获取数据库表信息
下一篇:sqlite数据库中第一条数据查不出来!
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做实用的IT技术学习网站