DBCC IND 命令用于查询一个存储对象的内部存储结构信息,该命令有4个参数, 前3个参数必须指定。语法如下:
DBCC IND ( { 'dbname' | dbid }, { 'objname' | objid },{ nonclustered indid | 1 | 0 | -1 | -2 } [, partition_number] )
第一个参数是数据库名或数据库ID。
第二个参数是数据库中的对象名或对象ID,对象可以是表或者索引视图。
第三个参数是一个非聚集索引ID或者 1, 0, 1, or 2. 值的含义:
0: 只显示对象的in-row data页和 in-row IAM 页。
1: 显示对象的全部页, 包含IAM 页, in-row数据页, LOB 数据页row-overflow 数据页 . 如果请求的对象含有聚集所以则索引页也包括。
-1: 显示全部IAM页,数据页, 索引页 也包括 LOB 和row-overflow 数据页。
-2: 显示全部IAM页。
Nonclustered index ID:显示索引的全部 IAM页, data页和索引页,包含LOB和 row-overflow数据页。
为了兼容sql server 2000,第四个参数是可选的,该参数用于指定一个分区号.如果不给定值或者给定0, 则显示全部分区数据。
和DBCC PAGE不同的是, SQL Server运行DBCC IND不需要开启3604跟踪标志.
DBCC IND命令输出列的含义:
PageFID: 文件ID
PagePID: PageID
IAMFID: IAM页所在的文件ID
IAMPID: IAM页所在的PageID
ObjectID: 对象ID
IndexID: 索引ID
PartitionNumber: 表或索引的分区号
PartitionID ID: 数据库范围内唯一的表或索引的分区ID
iam_chain_type: 页面所属的分配单元类型: in-row data, row-overflow data, or LOB data
PageType: 1 = data page, 2 = index page, 3 = LOB_MIXED_PAGE, 4 =LOB_TREE_PAGE, 10 = IAM page
IndexLevel:索引级别; 0 表示叶级
NextPageFID 当前级别的后一页的文件ID
NextPagePID 当前级别的后一页的PageID
PrevPageFID 当前级别的前一页的文件ID
PrevPagePID 当前级别的前一页的PageID