MSSQL---extents
一、MSSQLextent分两种: 1. Mixed extent:每个表或索引创建时,MSSQL并不给它分配一个extent,而是在mixed extnet内分配一个页,空间需求扩大时,再分配一个…,直到表或索引的空间需求超过8个页,系统为它分配一个extent,这个extent就是uniform. extent; 2. Uniform. extent:当表或索引的空间需求超过8个页时,系统就为它分配一个uniform. extent; 二、MSSQL用几种页来记录extent的使用: 1. GAM:global allocation map,用来记录extent是否已经被使用,每个位记录一个extent,0为已用,1表示未用,一个页大约有8000字节、64000个位,每个GAM页可以记录64000个extent,每个extent为8*8k=64k,那么GAM页最终可以记录64k*64000大小的空间,即大约4G的空间,也就是说GAM只能记录4G大小的空间,超过4G必须另外分配GAM,第一和第二个GAM间隔511230个页,第一个GAM总是文件的第三个页(page 2); 2. SGAM:shared global allocation map,用来记录extent是否被用作mixed extent,每个位记录一个extent,如果为1,说明对应的extent用作mixed extent且其中还有可用的页,为0,说明其为uniform. extent或mixed extent但已没可用页。同样,一个SGAM可以记录4G的空间,超过这个大小就需要另外分配SGAM,第一个和第二个SGAM间隔511230个页,第一个SGAM总是文件的第四个页(page 3); 3. 另外一种页——IAM,index allocation map,用来记录每个对象在一个文件中extents的情况,也就是记录对象被分配了一个文件中的extents,IAM页头有八个槽,分别用来指向表或索引的头八个页,因为它们都被分配在mixed extents里,后面页头还有一个map,其中每个位对应一个extent,如果相应文件中extent的位是1,就说明这个extent属于该对象,否则,就不属于该对象;该页可以在文件的任何位置分配,它也可以不指向它所在文件的extents,注意:IAM仅仅对应被一个分配单位使用的文件中的4G范围的extents使用情况,对应511230个页,一旦超过这些页,系统就要分配另外一个IAM页,一个对象的各个IAM也都被链接在一起,IAM头部有指向第一个extent的地址。每个分配单位中,只包含一个表或索引分区的一类页,多个分区要用到多个IAM,而同一个分区不同类的页,也要用到不同的IAM页。 4. PFS, page free space,用来记录每个文件中每个页如何使用的,文件的第二个页为PFS页,其后第8088个也是PFS页,因为一个PFS页中只有8088个字节可以用来记录页的使用情况。 5. DCM,differential changed map,用来记录自从上次全备以来改变过的extents,主要用于差异备份需要,文件的第七个页(page 6)为DCM页,也是只能覆盖4G的空间,超过4G就要分配另一个DCM页,中间要间隔511230个页。 6. BCM,bulk changed map,用来记录最小或批量日志操作改变的extents,文件的第八个页为BCM页,只能覆盖4G的空间,超过4G就要重新分配BCM页,中间间隔511230个页。 7. 至此,可以总结如下:文件的第一个页为文件头页,即page 0,第二个页为PFS页,第三个页为GAM页,第四个页为SGAM页,第七个页为DCM页,第八个页为BCM页,而IAM页可以在文件任何位置分配。
MSSQL---extents的更多相关文章
- [干货来袭]MSSQL Server on Linux预览版安装教程(先帮大家踩坑)
前言 昨天晚上微软爸爸开了全国开发者大会,会上的内容,我就不多说了,园子里面很多.. 我们唐总裁在今年曾今透漏过SQL Server love Linux,果不其然,这次开发者大会上就推出了MSSQL ...
- 分享MSSQL、MySql、Oracle的大数据批量导入方法及编程手法细节
1:MSSQL SQL语法篇: BULK INSERT [ database_name . [ schema_name ] . | schema_name . ] [ table_name | vie ...
- MSSQL远程连接
背景:部署公司自己研发的ERP系统. 1)系统架构: .NET+MSSQL. 2)服务器系统:Windows Server 2008 R2 Enterprise 3)数据库:MSSQL Server ...
- 学习笔记 MSSQL显错手工注入
和朋友一起学习,速度就是快.感谢珍惜少年时. 网上很多都在长篇大论MSSQL显错手工注入,其实原理只有一小段.如下: ' and (查询一段内容)=1 and 'C'='Cnvarchar类型(查询一 ...
- MSSQL部分补丁的列表及下载地址(持续更新)
整理了MSSQL部分补丁的列表及下载地址(截至2016-11-18),供参考下. Edition Version Date Published Download Link SQL Server 201 ...
- .NET+IIS+MSSQL配置
好久没配置.NET+IIS+MSSQL了,跟以前不大一样了.总结下吧. 环境: Windows Server 2012 标准版 x64 SQL Server Express 2014 一.HTTP E ...
- C++-数据库【1】-C++连接MSSQL数据库
测试环境—— 系统:Win7 64bit 编译器:VC++ 2015 数据库:MSSQL 2008 R2 #include <Windows.h> #include <stdio.h ...
- mssql与mysql 数据迁移
概要: mssql向mysql迁移的实例,所要用到的工具bcp和load data local infile. 由于订单记录的数据是存放在mssql服务器上的,而项目需求把数据迁移到mysql ser ...
- 一起来测试天兔Lepus3.8 Beta版本的MSSQL部分
一起来测试天兔Lepus3.8 Beta版本的MSSQL部分 产品介绍:http://www.lepus.cc/下载地址:http://www.lepus.cc/soft/18手册地址:http:// ...
- 一个防止误删MSSQL数据库的方法
一个防止误删MSSQL数据库的方法 环境:Windows2008 R2 .SQL 2012 今天发现一个有趣的现象,之前数据库服务器的其中几个数据库做过镜像,不过现在已经删除了,今天又要在那台服务器上 ...
随机推荐
- 论文笔记(6):Weakly-and Semi-Supervised Learning of a Deep Convolutional Network for Semantic Image Segmentation
这篇文章的主要贡献点在于: 1.实验证明仅仅利用图像整体的弱标签很难训练出很好的分割模型: 2.可以利用bounding box来进行训练,并且得到了较好的结果,这样可以代替用pixel-level训 ...
- angular中$q.all用法
$q.all是用于执行多个异步任务进行回调,它可以接受一个promise的数组,或是promise的hash(object).任何一个promise失败,都会导致整个任务的失败. 例1:接受一个pro ...
- Eclipse增强代码提示插件Code Recommenders安装,顺便说说Eclipse插件安装方法
1.为什么用Code Recommenders 在用过Intelij Idea后,发现它的自动代码提示非常智能,可以敲关键字就能提示,但是因为公司用的是Eclipse, 所以想找有没有这个插件能增强代 ...
- 【xsy2115】Delight for a Cat
Time Limit: 1000 ms Memory Limit: 512 MB Description 从前,有一只懒猫叫CJB.每个小时,这只猫要么在睡觉,要么在吃东西,但不能一边睡觉一边吃东 ...
- oracle 裸设备划分 --centos6.5
主题思想:物理卷PV->卷组VG->逻辑卷LV(类型:raw)->添加表空间 操作过程 vg_orcl 8g 一:划分 二:创建裸设备 方法1:目前最常用的方法 #c ...
- k60详细引脚功能截图
- 一步步教你开发、部署第一个去中心化应用(Dapp) - 宠物商店
今天我们来编写一个完整的去中心化(区块链)应用(Dapps), 本文可以和编写智能合约结合起来看. 写在前面 阅读本文前,你应该对以太坊.智能合约有所了解,如果你还不了解,建议你先看以太坊是什么除此之 ...
- 标准mysql(x64) Windows版安装过程
mysql x64不提供安装器,不提供安装器,不提供安装器-- 每次查英文文档有点慢,不够简. 5.7.6以后的64位zip包下载后解压是没有data目录的. 进入解压后的bin目录:(我用的powe ...
- Java爬虫爬取网站电影下载链接
之前有看过一段时间爬虫,了解了爬虫的原理,以及一些实现的方法,本项目完成于半年前,一直放在那里,现在和大家分享出来. 网络爬虫简单的原理就是把程序想象成为一个小虫子,一旦进去了一个大门,这个小虫子就像 ...
- sql操作知识点个人笔记(SQLServer篇)
实际工作中,总会遇到一些常用的或不常用的sql,这些sql可能并没多少技术含量,但对我们本身而言,一个最大的问题就是很容易忘记.对我个人而言,以前常用的,过阵子之后再用到,发现不记得了.由此得出结论, ...