您的位置:首页 > 数据库

数据库的文件存储结构

2016-03-24 17:14 183 查看
转载自一线码农-博客园 原文地址Sql Server之旅——第二站 理解万恶的表扫描

主要根据博文中的内容在本地的数据库上操作,同时添加一些零散的内容,以作记录。

区段是空间分配的基本单元,由8个连续的数据页组成,大小为64KB,按区段而不是记录的大小来分配空间可以节省一些分配空间的时间开销。

页是数据存储的基本单元,大小为8KB,数据库在进行I/O操作时也是以页为最小单位。

1.查看DBCC命令

--开启2588跟踪
DBCC TRACEON(2588)

--显示所有DBCC命令
DBCC HELP('?')

--查看指定命令的参数信息,比如ind
DBCC HELP('ind')


2.查看数据库中指定表的所有页记录

DBCC IND(Ctrip,Person,-1)


显示结果中某些列的含义:

IndexID:

索引ID,0代表堆,1代表聚集索引,2-250代表非聚集索引

iam_chain_type:

该页所属分配单元的类型 行内数据、行溢出数据和Lob数据

PageType:

1 data页

2 index页

3和4 text页(二进制大型对象)

8 GAM页(全局分配映射表)

9 SGAM页(共享全局分配映射表)

10 IAM页(索引分配映射)

11 PFS页 (页可用空间)

IndexLevel:

索引的层级,页级别为0,每往上一层,值加1

3.查看单个数据页

数据页由数据页头(Page Header,大小为96个字节)、数据内容(Page Data)、数据槽位(Page Slot)组成。

--开启3604跟踪
DBCC TRACEON(3604)

--查看数据页内容
DBCC PAGE(Ctrip,1,78,2)


槽位记录了每条记录在数据页中的偏移地址,由于数据页大小只有8KB,每个槽位需要占用2个字节,还可以看出因为是小端机,所以16进制格式下存储的数字和真实的数字他们的顺序是颠倒的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: