WEB开发网
开发学院数据库MSSQL Server 利用DBCC PAGE查看SQL Server中的表和索引数据 阅读

利用DBCC PAGE查看SQL Server中的表和索引数据

 2008-10-13 10:07:43 来源:WEB开发网   
核心提示: 现在,我们可以去看看SQL Server如何存储数据和索引页,利用DBCC PAGE查看SQL Server中的表和索引数据(2),但是我们该从哪里开始?我们能从哪里找到这张表的页和它的数据的所在?其实,这里还有另外的DBCC命令 – DBCC IND – 你可以用

现在,我们可以去看看SQL Server如何存储数据和索引页。但是我们该从哪里开始?我们能从哪里找到这张表的页和它的数据的所在?其实,这里还有另外的DBCC命令 – DBCC IND – 你可以用它来列出一张表的所有数据和索引页。

DBCC IND参数DBCC IND
(
['database name'|database id], -- the database to use
table name, -- the table name to list results
index id, -- an index_id from sys.indexes; -1 shows all indexes and IAMs, -2 just show IAMs
)

让我们通过运行下面的命令行来列出EMPLOYEE表的页结构。

  ListdataandindexpagesallocatedtotheEMPLOYEEtable
  DBCCIND('MSSQLTIPS',EMPLOYEE,-1)
  GO

以下是我的数据库所输出的结果:

利用DBCC PAGE查看SQL Server中的表和索引数据

请注意,为了更简洁,上述的图像只列出了执行DBCC命令后输出的前面11列的结果。还有另外的列没有列出来,这些列包括可以让你看到这些页如何彼此关联的链接列表信息。

这一次的数据意味着什么呢?为了达到这篇文章讲述的方法的目的,我们专注于一些关键列。列PageFID和PagePID分别代表页所在的文件数目和数据在文件内的页数目。IndexID是在sys.indexes之中找到的索引的index_id。PageType表示页的类型,Type = 1是数据页,Type = 2是索引页,Type = 10是保存页本身的IAM页。IndexLevel是按页数时IAM结构的级别。如果 level = 0,那么这是索引的叶级别页。要想了解更多这些列的详细信息(毕竟这是一个没有在正式文件中说明的命令),可以看看由微软前存储引擎专家Paul Randal写的MSDN blog,这个博客很详细地解释了这些。

上一页  1 2 3 4  下一页

Tags:利用 DBCC PAGE

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接