查看SqlServer数据页元数据

------------------------------------------------------------------------
--
查看表存储元数据(分区信息,分配单元信息,页面信息,首页地址)
declare @tablename nvarchar(100)
set @tablename = 数据库名称
select convert(char(8),object_name(i.object_id)) as table_name,
  i.name as index_name, i.index_id, i.type_desc as index_type,
  partition_id as '分区ID', partition_number as '分区数量', rows as '记录行数',
  a.allocation_unit_id as '分配单元ID(allocation_unit_ID)',    
  a.type_desc as page_type_desc,  a.total_pages as pages, 
  iau.filegroup_id as '文件组ID',iau.* 
from sys.indexes i join sys.partitions p
    on i.object_id = p.object_id and i.index_id = p.index_id
  join sys.allocation_units a
    on p.partition_id = a.container_id
  join sys.system_internals_allocation_units iau
    on p.partition_id = iau.container_id
where i.object_id = object_id(@tablename)



--查看表包含的页面信息(实际使用的页面)
--
----------------------------------------------------------
/*

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 
)
*/
declare @dbName nvarchar(100),@tablename nvarchar(100)
set @dbName = 数据库
set @tablename = 表名
DBCC IND(@dbName,@tablename,1)



------------------------------------------------------------------------
--
查看单个数据页详情
dbcc traceon(3604)
go
dbcc page(数据库名称,1,数据页编号,1)
posted @ 2011-12-22 16:24  zhengcong  阅读(961)  评论(0编辑  收藏  举报