16:08 2013-01-06 参考http://doc.chinaunix.net/sqlserver/200810/206034.shtml
DBCC PAGE|IND 参数

 DBCC PAGE 参数
(
['database name'|database id], --can be the actual name or id of the database
file number, --the file number where the page is found
page number, --the page number within the file
print option=[0|1|2|3] --display option; each option provides differing levels of information
)
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
)

一、查看表的数据
在系统表sysindexes 的列 first中保存有 filenum,pagenum 的信息(当indid为0或者1), 列first 的数据类型为binary(6), 它是以16进制的形式储的,需要进行转换. 在16进制中,每两个进制数字表示一个字节,并且是逆序排列的. 转换完成,其中前2组数表示该表所在的文件编号; 后4组表示该表所在的页码.
根据sysindexes 中的列first返回表所在的filenum 、pagenum

 declare @first binary(6)
select @first=first from sysindexes where id=object_id('fanr_city') and indid in(0,1)
declare @PageNum int
select @PageNum=convert(int,substring(@first,4,1)+substring(@first,3,1)+
substring(@first,2,1)+substring(@first,1,1))
declare @FileNum int
select @FileNum=convert(int,substring(@first,6,1)+substring(@first,5,1))
select @FileNum,@PageNum

通过返回的@FileNum,@PageNum,查看表数据页结构

 DBCC TRACEON (3604)
DBCC Page (7,1,227,1)

返回结果如下

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

PAGE: (1:227)

BUFFER:

BUF @0x03BE8618

bpage = 0x05554000                   bhash = 0x00000000                   bpageno = (1:227)
bdbid = 7 breferences = 0 bUse1 = 7194
bstat = 0x1c0000b blog = 0x212121bb bnext = 0x00000000 PAGE HEADER: Page @0x05554000 m_pageId = (1:227) m_headerVersion = 1 m_type = 1
m_typeFlagBits = 0x4 m_level = 0 m_flagBits = 0x0
m_objId (AllocUnitId.idObj) = 114 m_indexId (AllocUnitId.idInd) = 256
Metadata: AllocUnitId = 72057594045399040
Metadata: PartitionId = 72057594044350464 Metadata: IndexId = 0
Metadata: ObjectId = 1381579960 m_prevPage = (0:0) m_nextPage = (0:0)
pminlen = 92 m_slotCnt = 0 m_freeCnt = 8096
m_freeData = 96 m_reservedCnt = 0 m_lsn = (71:349:76)
m_xactReserved = 0 m_xdesId = (0:0) m_ghostRecCnt = 0
m_tornBits = 0 Allocation Status GAM (1:2) = ALLOCATED SGAM (1:3) = ALLOCATED
PFS (1:1) = 0x60 MIXED_EXT ALLOCATED 0_PCT_FULL DIFF (1:6) = CHANGED
ML (1:7) = NOT MIN_LOGGED DATA: OFFSET TABLE: DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

二、查看索引的数据

 --创建测试表,并添加索引
USE AdventureWorks
SELECT *
INTO dbo.Contacts_index
FROM Person.Contact
CREATE INDEX FullName ON Contacts_index(LastName,FirstName)
DBCC IND(AdventureWorks,Contacts_index,-1)


列PageFID和PagePID分别代表页所在的文件数目和数据在文件内的页数目。IndexID是在sys.indexes之中找到的索引的index_id。PageType表示页的类型,Type=1是数据页,Type=2是索引页,Type=10是保存页本身的IAM页。IndexLevel是按页数时IAM结构的级别。如果 level=0,那么就是索引的叶级别页。

 DBCC TRACEON(3604)
DBCC PAGE(AdventureWorks,1,15056,3) WITH TABLERESULTS
DBCC PAGE(AdventureWorks,1,14988,3) WITH TABLERESULTS

以下分别是中间级索引页15056和叶级索引页14988、14989的数据分布情况。索引条目按照索引键的值有序排列

利用DBCC PAGE查看SQL Server中的表和索引数据的更多相关文章

  1. 快速查看SQL Server 中各表的数据量以及占用空间大小

    快速查看SQL Server 中各表的数据量以及占用空间大小. CREATE TABLE #T (NAME nvarchar(100),ROWS char(20),reserved varchar(1 ...

  2. 在SQL SERVER中获取表中的第二条数据

    在SQL SERVER中获取表中的第二条数据, 思路:先根据时间逆排序取出前2条数据作为一个临时表,再按顺时排序在临时表中取出第一条数据 sql语句如下: select top 1 * from(se ...

  3. 显示 Sql Server 中所有表或表中行的信息

    在MSSQL中显示某个数据库中所有表或视图的信息: (以下语句为获取所有表信息,将绿色字"U"替换为"V"则获取所有视图信息.) SELECT sysobjec ...

  4. Sql Server中判断表、列不存在则创建的方法[转]

    一.Sql Server中如何判断表中某列是否存在 首先跟大家分享Sql Server中判断表中某列是否存在的两个方法,方法示例如下: 比如说要判断表A中的字段C是否存在两个方法: 第一种方法  ? ...

  5. 转:Sql Server中的表访问方式Table Scan, Index Scan, Index Seek

    0.参考文献 Table Scan, Index Scan, Index Seek SQL SERVER – Index Seek vs. Index Scan – Diffefence and Us ...

  6. Sql Server中的表访问方式Table Scan, Index Scan, Index Seek

    1.oracle中的表访问方式 在oracle中有表访问方式的说法,访问表中的数据主要通过三种方式进行访问: 全表扫描(full table scan),直接访问数据页,查找满足条件的数据 通过row ...

  7. SQL Server中多表连接时驱动顺序对性能的影响

    本文出处:http://www.cnblogs.com/wy123/p/7106861.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...

  8. 多个程序对sql server中的表进行查询和插入操作导致死锁

    最近在做一个项目,是要用多个程序对sql server中的相同的数据库进行操作(查询和插入),所以在开始的时候常会出现死锁问题,后来在网上进行了咨询,发现了一些解决方法,留作大家参考: 并发去操纵一张 ...

  9. 查看SQL Server中的锁表及解锁

    有时候系统很慢,有可能是SQL Server数据库中某些表被锁定 --查看被锁表(需查多几次,有些临时锁很快会自动解锁): SELECT request_session_id AS spid, OBJ ...

随机推荐

  1. io资料

    jitsi red5 apache meeting2 openmeeting2 openfire http://www.onlycoder.net/ 在视频会议领域,有许多可以值得参考的开源项目,这些 ...

  2. javaWeb应用部署结构浅析

    要成功部署一个Web应用,则必须遵循以下标准(参考)目录结构. 2.目录说明 1)WEB-INF目录:必须直接放在Web应用上下文之下(即一级目录). 2)class目录:必须直接放在WEB-INF目 ...

  3. DS实验题 最大最小

    题目: 算法设计: 计算最小值算法: 设置一个flag,flag为1的时候代表遇到*号: 遇到数字时: flag为0进栈: flag为1的时候,从栈顶提出一个元素和当前元素运算,结果进栈 最后对栈进行 ...

  4. php中ajax跨域请求---小记

    php中ajax跨域请求---小记   前端时间,遇到的一个问题,情况大约是这样: 原来的写法: 前端js文件中: $.ajax({ type:'get', url:'http://wan.xxx.c ...

  5. JavaScript 数组详解(转)

    在程序语言中数组的重要性不言而喻,JavaScript中数组也是最常使用的对象之一,数组是值的有序集合,由于弱类型的原因,JavaScript中数组十分灵活.强大,不像是Java等强类型高级语言数组只 ...

  6. 不再写.bat

    <script type="text/javascript"> for (var w = 0; w < 24; w++) { setTimeout(functio ...

  7. spm完成dmp在windows系统上导入详细过程

    --查询dmp字符集 cat spmprd_20151030.dmp ','xxxx')) from dual; spm完成dmp在windows系统上导入详细过程 create tablespace ...

  8. 在XE5中 VCL空窗体的3个线程

    中午看到技术群里有人讨论, XE5一个空窗体程序就包含了3个线程, 赶忙打开XE5开了个空窗体一看, 果然如此 再打开D7和2010看了一下, 都是一个线程 这时看到有人说一个是输入法, 一个是GDI ...

  9. Bluetooth HFP介绍

    目录 1. 介绍 1.1 目的 1.2 使用场景 1.3 依赖关系 1.4 协议栈 1.5 角色 2. 应用层 3. 空白章节 4. 互操作性要求 4.1 介绍 4.2 Service Level C ...

  10. Device ID

    参考文章 一.CFUUID (Deprecated) 二.UDID (Deprecated) 三.NSUUID (ios6.0 and later) NSString *uuid = [[NSUUID ...