Sql server 如何理解LCK\U M\U RID:7:1:11826:0中涉及的表/行?
什么是里德:7:1:11826:0 似乎7是sys.databases中select*的数据库\u id,但其他数字是什么意思Sql server 如何理解LCK\U M\U RID:7:1:11826:0中涉及的表/行?,sql-server,tsql,Sql Server,Tsql,什么是里德:7:1:11826:0 似乎7是sys.databases中select*的数据库\u id,但其他数字是什么意思 此信息来自select*from master..SYSPROCESS with(nolock)当表是堆(无聚集索引)时,RID是行定位器。有关数字如下: database_id : file_number : page_number : slot_number 要阅读本页并找出其中的数据,您可以执行以下操作: DBCC TRACEON(3604, -1); GO D
此信息来自select*from master..SYSPROCESS with(nolock)当表是堆(无聚集索引)时,RID是行定位器。有关数字如下:
database_id : file_number : page_number : slot_number
要阅读本页并找出其中的数据,您可以执行以下操作:
DBCC TRACEON(3604, -1);
GO
DBCC PAGE(7, 1, 11826);
-- db_id -^
-- file_no --^
-- page_no -----^^^^^
GO
DBCC TRACEOFF(3604, -1);
在输出中,您应该看到如下内容:
Metadata: ObjectId = <some number>
元数据:ObjectId=
那么你可以说:
SELECT s.name, o.name
FROM sys.objects AS o
INNER JOIN sys.schemas AS s
ON o.[schema_id] = s.[schema_id]
WHERE o.[object_id] = <that number from above>;
选择s.name,o.name
从sys.objects作为o
内部连接sys.schemas作为
在o.[schema\u id]=s.[schema\u id]上
其中o.[object_id]=;
您还可以通过以下语句查看SPID最后执行的内容:
DBCC INPUTBUFFER(<spid from sysprocesses>);
DBCC INPUTBUFFER();
(顺便说一句,您真的不应该再使用sysprocesss
;这是一个不推荐使用的视图,仅出于向后兼容的原因。现在有更好的动态管理视图可用,例如sys.dm\u exec\u requests
)
注意:尽管DBCC页面未记录且不受支持。这仅仅是为了让您有机会查看此页面所属的对象以及该页面上存储的内容。我们没有办法知道