数据库空间管理-学习笔记
来自《SQL Server 2012实施与管理实战指南》
1.数据文件的存储结构:
页:数据存储的基本单位是页,每一个页为8kb,每MB有128页。磁盘的IO操作在页级。每页开头是一个96字节的页头,用于存储页的系统信息,包括页码、页类型、页的可用空间,以及拥有该页的对象的分配单元ID。不同类型的数据存储在不同类型的页面里面。
(1) GAM(Global allocation map):存储在数据文件的第3个页上,文件和 页编码为(1:2),以Bit位来标识相应的区(Extends)是否已经分配。差不多能标识64000个区(8kb page*8 bit per byte),即64000*8kb*8=4096000kb=4GB.当数据空间超过4GB时,则以另一个GAM来标识下一个4GB的空间。
Bit=1,代表区空闲,可分配
Bit=0,代表区已被使用
(2) SGAM(Shared Global Allocation Map),存储在数据文件的第4个页上,文件和页编号为(1:3),结构和GAM相同,bit含义不同
Bit=1,代表混合区,且区内至少有一个页可用来分配;
Bit=0, 代表混合区或统一区,但区内所有页都已被使用;
区:8个物理上连续的页的集合,如果区内8个页属于同一个table,则叫统一区。否则,叫混合区
(3) (PFS)Page free space:存储本数据文件里所有页分配和可用空间的信息
(4) Index allocation map:表或索引使用空间的信息
(5) Bulk changed map:自最后一个backup log语句之后的大容量操作所修改的区的信息
(6) Differential changed map:自最后一条Backup database 语句之后更改的区的信息
(7) Data:用来存放数据
(8) Row overflow page:当一条记录超过8000字节时候,借此存放超出部分的数据
(9) LOB:存放大型对象数据类型:Text、ntext、image、nvarchar(max)、Varchar(max)、Varbinary(max)和XML数据
2.表存储结构
每张表对应一个object ID,并拥有一个或多个partition,通常一个partition对应一个索引,每个Partition会有一个或多个Heap或B-tree(简称Hobt),通常认为Partition与Hobt是一样的,Partition ID也是Hobt ID.每个Hobt至多有3个分配单元用于存放数据。最频繁分配的单元是Data。
(1) 表没有任何索引
表按Heap(堆)的结构存储,只有一个Partition。在系统表里,对于Partition下的每个分配单元都有一个连接指向IAM 页,并在页里描述了区的信息,所有数据页之间没有任何关系,完全依赖IAM页组织。
(2) 有非聚集索引而没有聚集索引的表
每一个非聚集索引,对应一个Partition,在每个partition下的每个分配单元,都有一个连接指向Root Page,数据页之间通过前后指针互相联系,是一个完整的树形结构, 在结构的底层有一个连接指向真正的数据,然后以heap的方式存放。
(2) 表有聚集索引
聚集索引,IndexID=1,对应一个partition,
转载于:https://www.cnblogs.com/roseHLF/p/9337059.html
数据库空间管理-学习笔记相关推荐
- oracle all_policies,Oracle数据库权限管理学习笔记
1)权限,角色和用户的关系 权限(privilege):Oracle数据库预先定义好的.执行某些操作的能力. 角色(role):一组相关权限的集合.可以利用角色来简化权限的管理. 用户(user):通 ...
- DB2 UDB V8.1 管理 学习笔记
DB2 UDB V8.1 管理 学习笔记 DB2 学习笔记 - AIview.com Last updated on Wednesday, August 24, 2005 Skip to naviga ...
- Windows内存管理学习笔记(三)—— 无处不在的缺页异常
Windows内存管理学习笔记(三)-- 无处不在的缺页异常 缺页异常 实验一:设置虚拟内存 无处不在的缺页 位于页面文件 保留与提交的误区 实验二:理解缺页异常 EXECUTE_WRITECOPY ...
- Windows内存管理学习笔记(二)—— 物理内存的管理
Windows内存管理学习笔记(二)-- 物理内存的管理 物理内存 实验一:理解MmNumberOfPhysicalPages MmPfnDatabase _MMPFN 物理页状态 六个链表 实验二: ...
- Windows内存管理学习笔记(一)—— 线性地址的管理
Windows内存管理学习笔记(一)-- 线性地址的管理 用户空间线性地址的管理 实验一:理解用户空间线性地址管理 Private Memory 实验二:理解Private Memory 堆 实验三: ...
- oracle数据库基础知识总结,oracle数据库基础知识学习笔记
oracle数据库基础知识学习笔记 一.oracle数据库类型: Char: 字符型(最大长度2000,定长.不足时以空格补充) Varchar2:字符型 最大长度 4000,变长,实际长度由存储的 ...
- sqlserver 2012实施与管理学习笔记(一):选型和部署之单机部署、故障转移群集与日志传送
sqlserver 2012实施与管理学习笔记(一):选型和部署之单机部署.故障转移群集与日志传送 数据库的选型和部署 sqlserver的安装和升级 选择高可用性和灾难恢复技术 故障转移群集 日志传 ...
- 郝健: Linux内存管理学习笔记-第5节课
前序文章: 郝健: Linux内存管理学习笔记-第1节课 郝健: Linux内存管理学习笔记-第2节课 郝健: Linux内存管理学习笔记-第3节课 郝健: Linux内存管理学习笔记-第4节课 摘要 ...
- 郝健: Linux内存管理学习笔记-第6节课
前序文章: 郝健: Linux内存管理学习笔记-第1节课 郝健: Linux内存管理学习笔记-第2节课 郝健: Linux内存管理学习笔记-第3节课 郝健: Linux内存管理学习笔记-第4节课 郝健 ...
最新文章
- VisualSVN Server的配置和使用方法 图文
- Java对象之间相同属性的赋值
- 将SimCLR应用于NLP预训练模型,提升句子语义表征效果
- ashly理器4.8软件汉化版_AMD 处理器核心比英特尔多还更便宜?英特尔回应
- LeetCode 2156. 查找给定哈希值的子串(字符串哈希)
- 有原创保护能力的公众帐号可申请页面模版功能和图文消息正文插入历史群发链接...
- 青岛旅游学校计算机证书,【我和我的旅校】青岛旅游学校优秀毕业生郭千瑜
- 系统操作手册_东芝CT操作手册——系统概述
- 封装BackgroundWorker控件(提供源代码下载,F5即可见效果)
- java中string类的常用方法举例说明
- data1 op data2 c语言,编写一个简单计算器程序,输入格式为:data1 op data2。其中data1和data2是参加...
- D轮融资1亿美金,6亿美金估值,3位计算机学霸如何带领海归团队创造业内神话?!
- python万能头文件_c++的‘万能头文件’真的万能吗?
- C# 使用SHFileOperation 复制文件 注意引用方式
- 齐岳|马钱苷酸小麦麦清白蛋白纳米粒|雷公藤红素乳清白蛋白纳米粒Celastrol-whey protein
- 大麦携演协发布演出市场报告:95后成消费新贵 城市下沉提速
- Ubuntu系统安装时grub修复操作
- cdma 复制短息到uim卡的实现
- 5线DBCD股票趋势
- 手机磁盘IO读写速度测试(OTG)