【问题标题】:How to get table name from database id, file id, page id in MS SQL 2008?如何从 MS SQL 2008 中的数据库 ID、文件 ID、页面 ID 获取表名?
【发布时间】:2011-05-11 06:41:56
【问题描述】:

我有一个死锁图,其中锁定资源由这三个字段 DB ID、文件 ID、页面 ID 提及。还有一些相关的objectid。 我只想知道这个页面属于哪个表。 我试过DBCC PAGE(dbid, fileid, pageid) with 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。

【问题讨论】:

    标签: sql-server database database-deadlocks dbcc


    【解决方案1】:

    要从DBCC PAGE 获取结果,您必须启用跟踪标志 3604,否则结果将进入 SQL 服务器日志:

    dbcc traceon (3604)
    

    然后试试这个命令

    dbcc page ( dbid, filenum, pagenum , 3)
    

    第四个参数是printopt

    printopt 参数有 以下含义:

    0 - print just the page header
    1 - page header plus per-row hex dumps and a dump of the page slot array 
        (unless it's a page that doesn't > have one, like allocation bitmaps)
    2 - page header plus whole page hex dump
    3 - page header plus detailed per-row interpretation
    

    来自here的定义

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-09
      • 2020-02-29
      • 1970-01-01
      • 1970-01-01
      • 2016-03-22
      • 2017-12-24
      • 2014-11-27
      • 2020-03-22
      相关资源
      最近更新 更多