数据库的文件存储结构

转载自一线码农-博客园 原文地址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进制格式下存储的数字和真实的数字他们的顺序是颠倒的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值