Just to clarify the above posts (in case you are directed here while looking in regards to SQL 2005)
Use this code for 2005:
/*FIND WAIT RESOURCE BY SPID*/
/*harvested and adjusted from :
http://www.sqlservercentral.com/Forums/Topic16430-5-1.aspx
*/
SET NOCOUNT ON declare @dbid int, @fileid int, @pageid int, @spid int, @sql varchar(128)
--set your spid of interest here:
set @spid = 95
select @dbid = substring(waitresource, 1, charindex (':', waitresource) - 1),
@fileid = substring(waitresource, charindex( ':', waitresource) + 1,
charindex(':', waitresource, charindex(':', waitresource) + 1) -
charindex(':',waitresource) - 1 ),
@pageid = substring(waitresource, charindex(':', waitresource,
charindex(':', waitresource, charindex(':', waitresource) + 1)) + 1,
len(waitresource) - (charindex(':', waitresource,
charindex(':', waitresource, charindex(':', waitresource) + 1)) + 1) )
from master..sysprocesses where spid = @spid and waitresource like '%:%:%'
select @dbid,@fileId,@pageid
set @sql = 'dbcc page (' + convert(varchar,@dbid) + ',' +
convert(varchar,@fileid) + ',' + convert(varchar,@pageid) + ') with
no_infomsgs, tableresults'
if exists (select 1 from tempdb..sysobjects where xtype = 'U' and name like
'#pageinfo%')
drop table #pageinfo
create table #pageinfo ( ParentObject varchar(128), [Object] varchar(128),
[Field] varchar(128), [Value] varchar(128) )
dbcc traceon (3604) with no_infomsgs
insert into #pageinfo (ParentObject, Object, Field, Value)
exec (@sql)
print @sql
select object_name([Value]) as 'waitresource object name' from
--/*adjusted for 2005*/ #pageinfo where Field = 'm_objId'
#pageinfo where Field = 'Metadata: ObjectID'
dbcc traceoff (3604) with no_infomsgs ]