SQL SERVER DBCC IND和PAGE


 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)

8183550_201012302230371.jpg

列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

 

8183550_201012302234401.jpg

fj.pngDBCC IND.jpg

fj.pngDBCC IND.jpg

fj.pngDBCC PAGE.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8183550/viewspace-682931/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8183550/viewspace-682931/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值