CREATE TABLE test
(
id INT IDENTITY(1,1),
NAME VARCHAR(50),
create_date DATETIME
);
GO
INSERT INTO
test
(
NAME,
create_date
)
VALUES
(
'hubing',
GETDATE()
)
GO
DBCC IND('test',test,-1)
列PageFID和PagePID分别代表页所在的文件数目和数据在文件内的页数目。IndexID是在sys.indexes之中找到的索引的index_id。PageType表示页的类型,Type = 1是数据页,Type = 2是索引页,Type = 10是保存页本身的IAM页。IndexLevel是按页数时IAM结构的级别。如果 level = 0,那么这是索引的叶级别页。要想了解更多这些列的详细信息(毕竟这是一个没有在正式文件中说明的命令),可以看看由微软前存储引擎专家Paul Randal写的MSDN blog,这个博客很详细地解释了这些。
现在我们可以看看我们插入的id, name和create_date三行是如何存储到test表中的。test表有一个聚簇索引(主键定义的结果),它表示应该有一个由DBCC IND输出结果产生的IndexID = 1(index_id = 1指向聚簇索引,在这个聚簇索引中,对于表来说叶级别页是真正的数据)。观察由DBCC IND产生的输出结果,我们可以看到,这个PageType = 1聚簇索引可以在文件数(PageFID) = 1和页码(PagePID) = 227的地方找到。
DBCC TRACEON(3604,-1);
DBCC PAGE(DATABASE,1,227,3 )WITH TABLERESULTS
GO
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8183550/viewspace-682931/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8183550/viewspace-682931/