好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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 事件


-- 资源压力

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

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   数据库   优化   事件探查器   sql server profiler   

查看更多关于SQL Server数据库优化实战(二)的详细内容...

  阅读:38次