数据库文件

每个 SQL Server 数据库至少具有两个操作系统文件:一个数据文件和一个日志文件。数据文件包含数据和对象,例如表、索引、存储过程和视图。日志文件包含恢复数据库中的所有事务所需的信息。为了便于分配和管理,可以将数据文件集合起来,放到文件组中。

SQL Server 数据库具有三种类型的文件,如下表所示:

文件的页和区

在 SQL Server 中,页的大小为 8 KB。这意味着 SQL Server 数据库中每 MB 有 128 页。

SQL Server 数据文件中的页按顺序编号,文件的首页以 0 开始。数据库中的每个文件都有一个唯一的文件 ID 号。若要唯一标识数据库中的页,需要同时使用文件 ID 和页码。下例显示了包含 4-MB 主数据文件和 1-MB 次要数据文件的数据库中的页码。

每个文件的第一页是一个包含有关文件属性信息的文件的页首页。在文件开始处的其他几页也包含系统信息(例如分配映射)。有一个存储在主数据文件和第一个日志文件中的系统页是包含数据库属性信息的数据库引导页。

SQL Server 中数据存储的基本单位是页。为数据库中的数据文件(.mdf 或 .ndf)分配的磁盘空间可以从逻辑上划分成页(从 0 到 n 连续编号)。磁盘 I/O 操作在页级执行。也就是说,SQL Server 读取或写入所有数据页。

在数据页上,数据行紧接着标头按顺序放置。页的末尾是行偏移表,对于页中的每一行,每个行偏移表都包含一个条目。每个条目记录对应行的第一个字节与页首的距离。行偏移表中的条目的顺序与页中行的顺序相反。

每页的开头是 96 字节的标头,用于存储有关页的系统信息。此信息包括页码、页类型、页的可用空间以及拥有该页的对象的分配单元 ID。

是管理空间的基本单位。一个区是八个物理上连续的页(即 64 KB)。这意味着 SQL Server 数据库中每 MB 有 16 个区。

为了使空间分配更有效,SQL Server 不会将所有区分配给包含少量数据的表。SQL Server 有两种类型的区:

  • 统一区,由单个对象所有。区中的所有 8 页只能由所属对象使用。

  • 混合区,最多可由八个对象共享。区中八页的每页可由不同的对象所有。

通常从混合区向新表或索引分配页。当表或索引增长到 8 页时,将变成使用统一区进行后续分配。如果对现有表创建索引,并且该表包含的行足以在索引中生成 8 页,则对该索引的所有分配都使用统一区进行。

sql server 2008学习2 文件和文件组相关推荐

  1. sql server 2008 学习笔记

    sql server 2008 删除已有的实例 想从setup.exe中区卸载,没找到. 原来还是要从控制面板中卸载,卸载Microsoft SQL Server 2008 卸载界面会提示让你选择要删 ...

  2. sql server 2008学习3 表组织和索引组织

    表组织 表包含在一个或多个分区中,每个分区在一个堆或一个聚集索引结构包含数据行.堆页或聚集索引页在一个或多个分配单元中进行管理,具体的分配单元数取决于数据行中的列类型. 聚集表.堆和索引 SQL Se ...

  3. sql server 2008学习1–系统数据库

    master数据库 数据库记录 SQL Server 系统的所有系统级信息.这包括实例范围的元数据(例如登录帐户).端点.链接服务器和系统配置设置.此外,master 数据库还记录了所有其他数据库的存 ...

  4. sql server 2008学习10 存储过程

    输入输出参数: 给存储过程传参数,叫做输入参数,用户告诉存储过程需要 利用这个参数干些什么. 输出参数: 从存储过程得到那些数据. 创建一个可选参数的存储过程: create proc pa1 @na ...

  5. sql server 2008学习12 事务和锁

    事务 事务的点: 1.begin tran 是事务开始的地方,也是 事务回滚的起点.也就说他会忽略这个起点之后的最终没有提交的所有语句, 2.commit tran 事务的提交 是一个事务的终点 当发 ...

  6. sql server 2008学习9 视图

    创建简单视图: use test go create view v1(视图名) as select name from b 这样视图就创建好了. 下面说下视图的本质: 当执行  select * fr ...

  7. sql server 2008学习8 sql server存储和索引结构

    sql server的存储机制 区段: 是用来为表和索引 分配空间的基本存储单元. 由 8个连续的页面构成,大小为64kb. 区段的注意事项: 一旦区段已满,那么下一记录 将要占据的空间不是记录的大小 ...

  8. sql server 2008学习4 设计索引的建议

    索引设计的建议: 一.检查where子句和连接条件列 当一个查询提交到sql server时,查询优化器尝试为查询中引用的所有表查找最佳的数据访问机制, 一下是它所进行的方式. 1.优化器识别Wher ...

  9. sql server 2008学习5 sql基础

    查看数据库的信息: INFORMATION_SCHEMA.CHECK_CONSTRAINTS INFORMATION_SCHEMA.COLUMN_DOMAIN_USAGE INFORMATION_SC ...

最新文章

  1. mysql获取配置文件信息,四种获取MySQL数据库配置文件加载顺序
  2. 【新年快乐】网易云信春节期间服务公告
  3. 牛客题霸 [找到字符串的最长无重复字符子串] C++题解/答案
  4. 渣本毕业两年经验,大厂面试题汇总
  5. Maven学习总结(10)——使用Maven编译项目gbk的不可映射问题
  6. 微机笔记——1.微型计算机概述
  7. ES6入门之let、cont
  8. elementui如何在input 框中搜索_【挑战自学Python编程】第八天:while循环以及input()函数...
  9. python 写csv_人生苦短,学用python
  10. Backup--BUFFERSIZE 和BUFFERCOUNT
  11. win10计算机磁盘图标,win10系统本地磁盘图标显示异常如何恢复
  12. web前端开发技术实验与实践(读书笔记)
  13. 判断ipad横竖屏的两个方法
  14. 一行代码就能随意修改网页内容
  15. python处理grd格式文件_python sklearn中,GBDT模型训练之后,可以查看模型中树的分裂路径吗?...
  16. 平衡二叉树、B树、B+树,B*树的区别与联系
  17. 加西亚·马尔克斯致读者《告别信》来源:infzm.com
  18. html加css做成的简易木马轮播图
  19. 苹果手机apn服务器在哪里修改,苹果手机的APN怎么改?
  20. 100 个网络基础知识普及

热门文章

  1. c++Interpolation search插值搜索的实现算法之一(附完整源码)
  2. C语言求一个数是否为armstrong阿姆斯特朗数(附完整源码)
  3. STL的pair键值对
  4. C语言和C++中的struct 和typedef struct
  5. C语言求最大公约数3种方法
  6. python rpc框架-python使用rpc框架gRPC的方法
  7. int *p,cons int *p,int const *p,int * const p,const int * const p,int const * const p的区别
  8. struts,ognl,valuestack
  9. java list 比较_Java中List的五种去重方法及效率对比,你都用对了吗?
  10. 初中计算机word教案ppt,初中信息技术课件 用Word处理文字.ppt