如何在MS SQL 2008中从数据库id、文件id、页面id获取表名?
我有死锁图,其中锁定的资源由这三个字段 DB ID、文件 ID、页面 ID 提及。还有一些关联的objectid。 我只想知道这个页面属于哪个表。 我尝试使用 DBCC PAGE(dbid, fileid, pageid) 和 tableresults
但没有显示任何表名称。
知道如何得到这个吗?
更新:还尝试了SELECT name From sys.indexes WHERE object_id = 123 and Index_id = 456
这里 123 是 m_objid
(下一个 ObjectId
),456 是 m_indexid
(下一个 IndexId
),我将其作为输出DBCC Page
命令。我得到的只是 NULL。
I've deadlock graph in which the locked resource is mentioned by these three fields DB ID, File ID, Page ID. There is also some associated objectid.
All I want to know is what table this page belongs.
I tried DBCC PAGE(dbid, fileid, pageid) with tableresults
but that doesn't show any table name.
Any idea how to get this?
Update: Also tried SELECT name From sys.indexes WHERE object_id = 123 and Index_id = 456
Here 123 is m_objid
(next ObjectId
) and 456 is m_indexid
(next IndexId
) which I get as output for DBCC Page
command. All I get is NULL.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
要从 DBCC PAGE 获取结果,您必须启用跟踪标志 3604,否则结果将转到 SQL Server 日志:
然后尝试命令
第四个参数是 printopt:
来自此处的定义
To get results from
DBCC PAGE
you must enable traceflag 3604, otherwise the results go to the SQL server log:then try the command
The fourth parameter is
printopt
:definition from here