设为首页 加入收藏

TOP

SQLServer数据库优化实战(二)
2015-07-24 10:16:03 来源: 作者: 【 】 浏览:0
Tags:SQLServer 数据库 优化 实战

前言:

本章主要介绍一下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高级(9)函数 下一篇锋利的SQL-基于窗口的排名计算

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·MySQL 基础入门视频 (2025-12-26 23:20:22)
·小白入门:MySQL超详 (2025-12-26 23:20:19)
·关于 MySQL 数据库学 (2025-12-26 23:20:16)
·SOLVED: Ubuntu 24.0 (2025-12-26 22:51:53)
·Linux 常用命令最全 (2025-12-26 22:51:50)