﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Релиб / SQL Server / Базы данных  / Блокировки в SQL Server / Latest Posts</title><generator>InstantForum.NET v4.1.4</generator><description>Релиб</description><link>http://www.relib.com/forums/</link><webMaster>robot@relib.com</webMaster><lastBuildDate>Wed, 03 Dec 2008 05:33:36 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: Блокировки в SQL Server</title><link>http://www.relib.com/forums/Topic724591-22-1.aspx</link><description>вся информация в системных таблицах&lt;BR&gt;я написал себе SP&lt;BR&gt;&lt;BR&gt;CREATE  PROCEDURE [se].[se_TraceLocks]&lt;BR&gt;	@i_s_db AS VARCHAR ( 50 ) = 'db_name',&lt;BR&gt;	@i_n_rsc_type AS INTEGER = NULL&lt;BR&gt;AS&lt;BR&gt;&lt;BR&gt;declare @i as integer&lt;BR&gt;set @i = 1&lt;BR&gt;&lt;BR&gt;create table #rcs_types (&lt;BR&gt;	rsc_type INTEGER PRIMARY KEY&lt;BR&gt;)&lt;BR&gt;&lt;BR&gt;if @i_n_rsc_type is null&lt;BR&gt;	while @i &amp;lt;= 10&lt;BR&gt;	begin&lt;BR&gt;		insert into #rcs_types ( rsc_type ) values ( @i )&lt;BR&gt;		set @i = @i + 1&lt;BR&gt;	end&lt;BR&gt;else&lt;BR&gt;	insert into #rcs_types ( rsc_type ) values ( @i_n_rsc_type )&lt;BR&gt;&lt;BR&gt;select&lt;BR&gt;	case req_mode&lt;BR&gt;		when 0 then 'NULL'&lt;BR&gt;		when 1 then 'Sch-S'&lt;BR&gt;		when 2 then 'Sch-M'&lt;BR&gt;		when 3 then 'S'&lt;BR&gt;		when 4 then 'U'&lt;BR&gt;		when 5 then 'X'&lt;BR&gt;		when 6 then 'IS'&lt;BR&gt;		when 7 then 'IU'&lt;BR&gt;		when 8 then 'IX'&lt;BR&gt;		when 9 then 'SIU'&lt;BR&gt;		when 10 then 'SIX'&lt;BR&gt;		when 11 then 'UIX'&lt;BR&gt;		when 12 then 'BU'&lt;BR&gt;		when 13 then 'RangeS_S'&lt;BR&gt;		when 14 then 'RangeS_U'&lt;BR&gt;		when 15 then 'RangeI_N'&lt;BR&gt;		when 16 then 'RangeI_S'&lt;BR&gt;		when 17 then 'RangeI_U'&lt;BR&gt;		when 18 then 'RangeI_X'&lt;BR&gt;		when 19 then 'RangeX_S'&lt;BR&gt;		when 20 then 'RangeX_U'&lt;BR&gt;		when 21 then 'RangeX_X'&lt;BR&gt;	end req_mode,&lt;BR&gt;	case rsc_type&lt;BR&gt;		when 1 then 'NULL'&lt;BR&gt;		when 2 then 'DATABASE'&lt;BR&gt;		when 3 then 'FILE'&lt;BR&gt;		when 4 then 'INDEX'&lt;BR&gt;		when 5 then 'TABLE'&lt;BR&gt;		when 6 then 'PAGE'&lt;BR&gt;		when 7 then 'KEY'&lt;BR&gt;		when 8 then 'EXTENT'&lt;BR&gt;		when 9 then 'RID'&lt;BR&gt;		when 10 then 'APPLICATION'&lt;BR&gt;	end rsc_type,&lt;BR&gt;	p.hostname, p.program_name, p.cmd, o.name, o.id,&lt;BR&gt;	o.xtype, o.uid, p.hostprocess, p.loginame, rsc_flag,&lt;BR&gt;	case req_status&lt;BR&gt;		when 1 then 'GRANTED'&lt;BR&gt;		when 2 then 'CONVERTING'&lt;BR&gt;		when 3 then 'WAITING'&lt;BR&gt;	end req_status,&lt;BR&gt;	req_refcnt, req_lifetime, req_spid, req_ecid,&lt;BR&gt;	case req_ownertype&lt;BR&gt;		when 1 then 'TRANSACTION'&lt;BR&gt;		when 2 then 'CURSOR'&lt;BR&gt;		when 3 then 'SESSION'&lt;BR&gt;		when 4 then 'EXSESSION'&lt;BR&gt;	end req_ownertype, req_transactionID,&lt;BR&gt;	p.blocked, p.waittype, p.waittime, p.lastwaittype,&lt;BR&gt;	p.waitresource, p.status, p.open_tran,&lt;BR&gt;	b.hostname by_hostname, b.program_name by_program_name,&lt;BR&gt;	b.cmd by_cmd, b.hostprocess by_hostprocess, b.loginame by_loginame&lt;BR&gt;from&lt;BR&gt;	master.dbo.syslockinfo l,&lt;BR&gt;	agent.dbo.sysobjects o,&lt;BR&gt;	master.dbo.sysprocesses p&lt;BR&gt;left join master.dbo.sysprocesses b&lt;BR&gt;on b.spid = p.blocked&lt;BR&gt;where&lt;BR&gt;l.rsc_dbid = (&lt;BR&gt;	select dbid from master.dbo.sysdatabases where name = @i_s_db&lt;BR&gt;) and&lt;BR&gt;o.id = l.rsc_objid and&lt;BR&gt;p.spid = l.req_spid and&lt;BR&gt;l.rsc_type in ( select t.rsc_type from #rcs_types t )</description><pubDate>Mon, 22 Oct 2001 21:41:00 GMT</pubDate><dc:creator>phwp</dc:creator></item><item><title>Блокировки в SQL Server</title><link>http://www.relib.com/forums/Topic724591-22-1.aspx</link><description>Как отследить заблокированный ресурс в SQL Server? Там конечно есть процедура sp_lock и системная таблица syslockinfo, но результаты их работы слишком неудобоваримы.</description><pubDate>Tue, 18 Sep 2001 16:49:00 GMT</pubDate><dc:creator>Артем</dc:creator></item></channel></rss>