SQL Server数据库存储文件类型:数据文件和日志文件。数据文件以页面作为存储单元存储数据。

页面:即数据页面,数据页(Page)。是系统在磁盘间中分配的一段大小为8k的连续空间。

文件头(File Header):每个文件的第0页记录叫文件头,记录引导信息。

扩展:每8个数据页(64k)的组合形成扩展区(Extent),简称扩展,也叫盘区。扩展是SQL Server默认的存储分配单位。

堆:全部数据页的组合形成堆(Heap)。

扩展类型:混合扩展(Mixed Extent)(也叫混合盘区)和一致扩展(Uniform Extent)(也叫统一盘区)。

混合扩展(Mixed Extent):扩展区中既包含了空间页面又包括了数据或索引页面时,称为混合扩展。每张表都以混合扩展开始。

一致扩展(Uniform Extent):只存储同一对象,该对象拥有整个扩展。专门保存数据及索引信息。

创建表后,先在混合扩展中分配数据页面,当数据超过8个页面时,再从一致扩展中分配数据页面。

系统为什么要提供混合扩展和一致扩展?

因为以扩展作为存储分配单位的话,可以减少频繁的IO读写,提高数据库性能,但同时又引入了一个新的问题,那就是,当存储数据不足8k时也会分配一个扩展,这样会浪费存储空间,降低空间分配效率。为解决这个问题,系统提供了混合扩展和一致扩展。

空间页面:负责数据空间的分配和管理。包含三种类型的页面文件。

PFS页面(Page free space):记录一个页面是否已分配、位于混合扩展还是一致扩展以及页面上还有多少可用空间等信息。

GAM页面(Global allocation map)和SGAM页面(Secodary global allocation map):用来记录空闲的扩展或含有空闲页面的混合扩展的位置。

数据页面:负责管理表或索引。包含四种类型的页面文件。

IAM页:Index Allocation Map,索引分布映像页。IAM页从混合扩展中分配。记录了8个初始页面的位置和所有扩展区的位置,每个IAM页面能管理512,000个数据页面。超过512,000时,还可以增加更多的IAM页。

数据页:保存大小不超过8k的非文本/图像类型的数据。

文本/图像页:保存超过8K容量的文本或图像类型数据。

索引页:保存的是与索引结构相关的数据信息。

文章知识点与官方知识档案匹配,可进一步学习相关知识

[转帖]SQL Server数据库存储总结的更多相关文章

  1. SQL SERVER大话存储结构(6)_数据库数据文件

            数据库文件有两大类:数据文件跟日志文件,每一个数据库至少各有一个数据文件或者日志文件,数据文件用来存储数据,日志文件用来存储数据库的事务修改情况,可用于恢复数据库使用.     这里分 ...

  2. Sql Server数据库备份和恢复:原理篇

    本文与您探讨为什么Sql Server有完整备份.差异备份和事务日志备份三种备份方式,以及为什么数据库又有简单模式.完整模式和大容量日志模式这三种恢复模式.本文内容适用于2005以上所有版本的Sql ...

  3. SQL Server 列存储索引强化

    SQL Server 列存储索引强化 SQL Server 列存储索引强化 1. 概述 2.背景 2.1 索引存储 2.2 缓存和I/O 2.3 Batch处理方式 3 聚集索引 3.1 提高索引创建 ...

  4. 关于SQL SERVER数据库学习总结

    对于SQL SERFVER数据库也学了有一阵子了,自己也对自己所学做了一些总结. 我们首先学习数据库设计的一些知识点和用SQL语句建库. 设计数据库步骤:需求分析阶段,概要设计阶段,详细设计阶段, 建 ...

  5. SQL SERVER 数据库备份的三种策略及语句

    1.全量数据备份    备份整个数据库,恢复时恢复所有.优点是简单,缺点是数据量太大,非常耗时 全数据库备份因为容易实施,被许多系统优先采用.在一天或一周中预定的时间进行全数据库备份使你不用动什么脑筋 ...

  6. SQL Server数据库性能优化之索引篇【转】

    http://www.blogjava.net/allen-zhe/archive/2010/07/23/326966.html 性能优化之索引篇 近期项目需要, 做了一段时间的SQL Server性 ...

  7. 5、SQL Server数据库、T-SQL

    SQL Server数据库基础 一.安装SQL Server数据库 setup.exe->安装->全新SQL Server独立安装或向现有安装添加功能->输入序列号->下一步- ...

  8. 人人都是 DBA(VIII)SQL Server 页存储结构

    当在 SQL Server 数据库中创建一张表时,会在多张系统基础表中插入所创建表的信息,用于管理该表.通过目录视图 sys.tables, sys.columns, sys.indexes 可以查看 ...

  9. 人人都是 DBA(V)SQL Server 数据库文件

    SQL Server 数据库安装后会包含 4 个默认系统数据库:master, model, msdb, tempdb. SELECT [name] ,database_id ,suser_sname ...

  10. 找到SQL Server数据库历史增长信息

        很多时候,在我们规划SQL Server数据库的空间,或向存储方面要空间时,都需要估算所需申请数据库空间的大小,估计未来最简单的办法就是看过去的趋势,这通常也是最合理的方式.     通常来讲 ...

随机推荐

  1. 揭秘Spring事务失效场景分析与解决方案

    在Spring框架中,事务管理是一个核心功能,然而有时候会遇到事务失效的情况,这可能导致数据一致性问题.本文将深入探讨一些Spring事务失效的常见场景,并提供详细的例子以及解决方案. 1. 跨方法调 ...

  2. .NET技术分享日活动20221022

    2022年10月22日下午,个人组织举办了山东地区的第六次.NET技术分享日活动.围绕.NET.低代码Low Code.云原生 Cloud Native.大数据.算法等方向进行创新技术的实践分享. 本 ...

  3. 如何利用动态配置中心在JavaAgent中实现微服务的多样化治理

    本文分享自华为云社区<如何利用动态配置中心在JavaAgent中实现微服务的多样化治理>,作者:华为云开源 . 一.前言 随着JavaAgent在微服务治理方面的广泛应用和发展,我们可以在 ...

  4. 如何更好的分析潜在人脉?聊聊华为云图引擎GES的Cypher子查询

    摘要:本文以华为云图引擎 GES 为例,来介绍如何使用图查询语言 Cypher 表达一些需要做数据局部遍历的场景. 本文分享自华为云社区<使用 Cypher 子查询进行图探索 -- 以华为云图引 ...

  5. 十八般武艺玩转GaussDB(DWS)性能调优:Plan hint运用

    摘要:本文介绍GaussDB(DWS)另一种可以人工干预计划生成的功能--plan hint. 前言 数据库的使用者在书写SQL语句时,会根据自己已知的情况尽力写出性能很高的SQL语句.但是当需要写大 ...

  6. 华为云企业级Redis揭秘第15期:Redis为什么需要强一致?

    摘要:其实开源Redis的弱一致性已经不满足很多应用场景的诉求.怎么,不信? 本文分享自华为云社区<华为云企业级Redis揭秘第15期:Redis为什么需要强一致?>,作者: GaussD ...

  7. Plus版SBOM:流水线物料清单PBOM

    相信大家对软件物料清单(SBOM)并不陌生,它是指用于构建软件解决方案的所有软件组件(开源或商业)的列表.但在软件物料清单中,并不包括用于部署软件的微服务和其他组件.为了更全面了解所用的组件,我们需要 ...

  8. Solon Web 开发:二、开发知识准备

    1.约定 //资源路径约定(不用配置:也不能配置) resources/app.yml( 或 app.properties ) #为应用配置文件 resources/WEB-INF/static/ 或 ...

  9. Java 模拟数据库连接池的实现

    前面学习过等待 - 通知机制,现在我们在其基础上添加一个超时机制,模拟从连接池中获取.使用和释放连接的过程.客户端获取连接的过程被设定为等待超时模式,即如果在 1000 毫秒内无法获取到可用连接,将会 ...

  10. 干掉 Navicat! 一款数据分析师必备的数据库可视化工具

    数据开发,离不开数据库,一款优秀的数据库开发和管理工具可以达到事半功倍的效果.市面上比较流行的数据库管理工具主要有Navicat.DBeaver.SQLyog等等,Navicat是其中的无冕之王,其拳 ...