数据库的文件存储结构
2016-03-24 17:14
183 查看
转载自一线码农-博客园 原文地址Sql Server之旅——第二站 理解万恶的表扫描
主要根据博文中的内容在本地的数据库上操作,同时添加一些零散的内容,以作记录。
区段是空间分配的基本单元,由8个连续的数据页组成,大小为64KB,按区段而不是记录的大小来分配空间可以节省一些分配空间的时间开销。
页是数据存储的基本单元,大小为8KB,数据库在进行I/O操作时也是以页为最小单位。
1.查看DBCC命令
2.查看数据库中指定表的所有页记录
显示结果中某些列的含义:
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)组成。
槽位记录了每条记录在数据页中的偏移地址,由于数据页大小只有8KB,每个槽位需要占用2个字节,还可以看出因为是小端机,所以16进制格式下存储的数字和真实的数字他们的顺序是颠倒的。
主要根据博文中的内容在本地的数据库上操作,同时添加一些零散的内容,以作记录。
区段是空间分配的基本单元,由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进制格式下存储的数字和真实的数字他们的顺序是颠倒的。
相关文章推荐
- SQLITE数据表主键设置Id自增方法
- oracle mod 表达式
- oracle sql decode
- centos安装redis3.0.0集群
- redis初步使用
- 用户、角色、权限数据库设计
- 理一下iOS本地持久化储存(侧重数据库SQLite)
- MySQL监控SQL及命中率脚本
- SQLServer添加链接服务器
- 关于MYSQL的行列转换
- 转:ORACLE制造方法的比较
- Oracle 流式制造功能培训
- MySQL性能优化的最佳20+条经验
- MongoDB基本使用
- 详解MySQL中的分组查询与连接查询语句
- Oracle Database 11g Express Edition使用限制,与其他版本的区别
- DDL语句--删除数据库
- oracle数据库基础知识
- oracle 自启动
- window64位环境下redis的安装和使用(1)