WEB开发网
开发学院数据库MSSQL Server SQL Server 2005性能排错(4) 阅读

SQL Server 2005性能排错(4)

 2007-05-15 09:28:31 来源:WEB开发网   
核心提示: 实际上,你能连接上面的2个DMV,SQL Server 2005性能排错(4)(9),就像使用存储过程sp_block锁展示的,在图1种阻塞报告列出了被阻塞的会话和阻塞它的会话,event_id参数为1372.如果使用SQL Server Profiler,选择Blocked Proces

实际上,你能连接上面的2个DMV,就像使用存储过程sp_block锁展示的。在图1种阻塞报告列出了被阻塞的会话和阻塞它的会话。你可以在附录B中找到sp_block的源代码。如果你需要添加/删除在可选择列表中的列时,你可以根据需求修改存储过程。可选的@spid参数提供了在锁请求和阻塞这个spid的会话信息。

图1:sp_block 报表

在SQL Server 2000中,你能通过下列语句查看被阻塞的spid信息。

select * from master..sysprocesses where blocked <> 0.

联合锁可以通过存储过程sp_lock存储过程。

识别长时间的阻塞

之前我们提到,在SQL Server中阻塞是很正常的,使用逻辑锁来维护事务一致性的。然而当等待的锁超过了阀值,它会影响响应时间。为了识别长时间运行的阻塞,你能使用BlockedProcessThreshold配置参数来建立一个用户配置的服务端阻塞阀值。阀值定义一个秒级的间隔。任何超过阀值的阻塞将出发事件并被SQL Trace捕获。

例如,1个200秒的阻塞进程阀值可以在SQL Management Studio中配置。例如:

Execute Sp_configure ‘blocked process threshold’, 200 
Reconfigure with override

一旦阻塞处理阀值被建立,下一步是捕获跟踪的事件。跟踪阻塞超过用户配置的阀值事件可以通过SQL Trace 或Profiler捕获。

1.如果使用SQL Trace,使用sp_trace_setevent过程,event_id参数为137

2.如果使用SQL Server Profiler,选择Blocked Process Report 事件类(在Error和Warnings对象下),如图2。

图2:跟踪长时间的阻塞和死锁

上一页  4 5 6 7 8 9 10  下一页

Tags:SQL Server 性能

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接