SQLServer数据库结构和管理课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《SQLServer数据库结构和管理课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQLServer 数据库 结构 管理 课件
- 资源描述:
-
1、优秀精品课件文档资料优秀精品课件文档资料SQL ServerSQL Server第第3章章 SQL Server数据库结构和管理数据库结构和管理第第3章章 SQL Server数据库结构和管理数据库结构和管理 3.1 数据库物理存储结构数据库物理存储结构 3.2 数据库的逻辑组织数据库的逻辑组织 3.3 数据库创建与管理数据库创建与管理 3.4 数据库选项设置数据库选项设置 3.1 3.1 数据库物理存储结构数据库物理存储结构3.1.1 3.1.1 数据库文件和文件组数据库文件和文件组 3.1.2 3.1.2 数据文件的使用分配数据文件的使用分配 3.1.3 3.1.3 事务日志文件结构事务日
2、志文件结构 3.1.1 3.1.1 数据库文件和文件组数据库文件和文件组 1.1.主数据库文件主数据库文件(Primary Database FilePrimary Database File):是):是数据库的起点,可以指向数据库中文件的其它部分。数据库的起点,可以指向数据库中文件的其它部分。每个数据库都有一个主数据库文件。文件扩展名一每个数据库都有一个主数据库文件。文件扩展名一般是般是 .mdf.mdf。2.2.次数据库文件次数据库文件(Secondary Database FileSecondary Database File):):有些数据库可能没有次数据文件,而有的数据库则有些数据库
3、可能没有次数据文件,而有的数据库则有多个次数据文件。文件扩展名多是有多个次数据文件。文件扩展名多是 .ndf.ndf。3.3.事务日志文件事务日志文件:日志文件包含恢复数据库所需的:日志文件包含恢复数据库所需的所有日志信息。每个数据库必须至少有一个日志文所有日志信息。每个数据库必须至少有一个日志文件,但可以不止一个。推荐的文件扩展名是件,但可以不止一个。推荐的文件扩展名是 .ldf.ldf。一个数据库文件组织的例子一个数据库文件组织的例子 数据库数据库文件组文件组为了便于分配和管理,为了便于分配和管理,SQL ServerSQL Server允许将多个文件允许将多个文件归纳为同一组,并赋予此组
4、一个名称,这就是文件归纳为同一组,并赋予此组一个名称,这就是文件组。文件组能够控制各个文件的存放位置,其中的组。文件组能够控制各个文件的存放位置,其中的每个文件常建立在不同的硬盘驱动器上,这样可以每个文件常建立在不同的硬盘驱动器上,这样可以减轻单个磁盘驱动器的存储负载,提高数据库的存减轻单个磁盘驱动器的存储负载,提高数据库的存储效率,从而达到提高系统性能的目的。储效率,从而达到提高系统性能的目的。数据库数据库文件组的好处文件组的好处在存储数据时,在存储数据时,SQL ServerSQL Server采用按比例填充策略使用文件组内采用按比例填充策略使用文件组内每个文件所提供的存储空间。例如,如果
5、一个服务器上有每个文件所提供的存储空间。例如,如果一个服务器上有4 4个可个可供数据库使用的硬盘,他们提供给数据库的最大存储空间分别为供数据库使用的硬盘,他们提供给数据库的最大存储空间分别为100M100M,200M200M,300M300M和和100M100M,我们可以在前面,我们可以在前面3 3个硬盘上建立一个个硬盘上建立一个数据文件组,包含三个文件,每个硬盘上分配一个文件,在第数据文件组,包含三个文件,每个硬盘上分配一个文件,在第4 4个硬盘上建立数据库的日志文件,当发生数据库的读写操作时,个硬盘上建立数据库的日志文件,当发生数据库的读写操作时,日志数据写入第日志数据写入第4 4个硬盘,
6、而数据库数据写入前个硬盘,而数据库数据写入前3 3个硬盘。在写入个硬盘。在写入数据时,数据时,SQL ServerSQL Server根据文件组内每个数据文件中剩余的空间大根据文件组内每个数据文件中剩余的空间大小按比例分配写入其中的数据量,即小按比例分配写入其中的数据量,即1 1:2 2:3 3,这样不仅保证文,这样不仅保证文件组内每个文件的空间基本上同时用完,而且将一次磁盘操作同件组内每个文件的空间基本上同时用完,而且将一次磁盘操作同时分配给多个磁盘控制器,可以减轻每个磁盘的负载,从而提高时分配给多个磁盘控制器,可以减轻每个磁盘的负载,从而提高写入速度。写入速度。建立数据文件和文件组时,应注
7、意以下两点:建立数据文件和文件组时,应注意以下两点:每个数据文件或文件组只能属于一个数据库,每个每个数据文件或文件组只能属于一个数据库,每个数据文件也只能成为一个文件组的成员。也就是说,数据文件也只能成为一个文件组的成员。也就是说,数据文件不能跨文件组使用,数据文件和文件组不数据文件不能跨文件组使用,数据文件和文件组不能跨数据库使用。能跨数据库使用。日志文件是独立的,它不能作为其他数据文件组的日志文件是独立的,它不能作为其他数据文件组的成员。即数据库内的数据和日志不能存入相同的文成员。即数据库内的数据和日志不能存入相同的文件或文件组。件或文件组。主文件组和次文件组主文件组和次文件组 1.1.主
8、文件组:主文件组:包含主数据文件和所有没有被包含在其它文包含主数据文件和所有没有被包含在其它文件组里的文件。在创建数据库时,如果未指定其他数据文件件组里的文件。在创建数据库时,如果未指定其他数据文件所属文件组,这些文件将归属于主文件组。数据库的系统表所属文件组,这些文件将归属于主文件组。数据库的系统表都包含在主文件组里,所以,当主文件组的空间用完后,将都包含在主文件组里,所以,当主文件组的空间用完后,将无法向系统表中添加新的目录信息。无法向系统表中添加新的目录信息。2.2.次文件组次文件组:也称用户自定义文件组,包括所有使用数据:也称用户自定义文件组,包括所有使用数据库创建语句(库创建语句(C
9、REATE DATABASESCREATE DATABASES)或数据库修改语句)或数据库修改语句(ALTER DATABASESALTER DATABASES)时使用)时使用FILEGROUPFILEGROUP关键字进行指定的关键字进行指定的文件。文件。3.3.默认文件组:默认文件组:任何时候,只能有一个文件组是默认文件任何时候,只能有一个文件组是默认文件组。默认情况下,主文件组被认为是默认文件组。组。默认情况下,主文件组被认为是默认文件组。使用数据文件和文件组的建议:使用数据文件和文件组的建议:1.1.创建数据库时,允许数据文件能够自动增长,创建数据库时,允许数据文件能够自动增长,但要设置
10、一个上限,否则有可能充满磁盘。但要设置一个上限,否则有可能充满磁盘。2.2.主文件组要足够大以容纳所有的系统表。否则主文件组要足够大以容纳所有的系统表。否则新的信息就无法添加到系统表,数据库也就无法新的信息就无法添加到系统表,数据库也就无法追加修改。追加修改。3.3.建议把频繁查询的文件和频繁修改的文件分放建议把频繁查询的文件和频繁修改的文件分放在不同的文件组。在不同的文件组。4.4.把索引、大型的文本文件、图象文件放到专门把索引、大型的文本文件、图象文件放到专门的文件组里。的文件组里。3.1.2 3.1.2 数据文件的使用分配数据文件的使用分配 在在 SQL Server SQL Serve
11、r 中,数据文件存储的基本单位是页。中,数据文件存储的基本单位是页。在在 SQL Server SQL Server 中,页的大小是中,页的大小是 8 KB8 KB。这意味着。这意味着 SQL SQL Server Server 数据库每兆字节有数据库每兆字节有 128 128 页。页。每页的开始部分是每页的开始部分是 96 96 字节的页首,用于存储系统信息,字节的页首,用于存储系统信息,如页的类型、页的可用空间量、页对象如页的类型、页的可用空间量、页对象IDID等。等。根据页面所存储的不同信息,可以将它划分为根据页面所存储的不同信息,可以将它划分为8 8种页类型。种页类型。1 1基本知识基
12、本知识 2 2数据页面存储格式数据页面存储格式(1 1)数据页面)数据页面数据页包含数据行中除数据页包含数据行中除 texttext、ntext ntext 和和 image image 数据外的所有数数据外的所有数据,页首占用每个数据页的前据,页首占用每个数据页的前9696个字节,剩余的个字节,剩余的80968096字节用于数字节用于数据和行偏移数组。据和行偏移数组。2 2数据页面存储格式数据页面存储格式(2 2)数据行)数据行紧跟着页头的就是存储表的真正数据行区域。单紧跟着页头的就是存储表的真正数据行区域。单个数据行的最大长度是个数据行的最大长度是80608060字节。字节。数据行不能跨页
13、存储(文本和图像例外)。页内数据行不能跨页存储(文本和图像例外)。页内数据行的多少依赖于表的结构和要存储的数据。数据行的多少依赖于表的结构和要存储的数据。如果一个表的所有列都是定长,那么该表在每一如果一个表的所有列都是定长,那么该表在每一页上存储相同数目的行。页上存储相同数目的行。如果一个表里有变长列,那么该表总是在每一页如果一个表里有变长列,那么该表总是在每一页上存储尽可能多的行。上存储尽可能多的行。数据行越短,每一页存储的行数就越多。数据行越短,每一页存储的行数就越多。2 2数据页面存储格式数据页面存储格式(3 3)行偏移数组)行偏移数组当单行数据长度为最大当单行数据长度为最大806080
14、60字节时,行偏移数组占用字节时,行偏移数组占用8096-8096-8060=368060=36个字节。个字节。但实际中一个数据行大多不是但实际中一个数据行大多不是80608060字节,往往比这个小,所字节,往往比这个小,所以数据行占用的总字节数目和行偏移数组占用的总字节数是以数据行占用的总字节数目和行偏移数组占用的总字节数是系统动态调整,数据行字节越少,偏移数组字节越多,反之,系统动态调整,数据行字节越少,偏移数组字节越多,反之,数据行字节越多,偏移数组字节越少,但不能少于数据行字节越多,偏移数组字节越少,但不能少于3636个字节。个字节。每两个字节构成一个条目块,每两个字节构成一个条目块,
15、每个条目表示页中相关数据行每个条目表示页中相关数据行开始的偏移量。开始的偏移量。注意:行偏移数组表示的是页中数据行的逻辑顺序,不是物注意:行偏移数组表示的是页中数据行的逻辑顺序,不是物理顺序。真正的物理顺序与聚集索引有关。理顺序。真正的物理顺序与聚集索引有关。2 2数据页面存储格式数据页面存储格式(4 4)页面链接)页面链接每个表或索引视图的数据行一般都分开存储在多个每个表或索引视图的数据行一般都分开存储在多个 8 KB 8 KB 数数据页中。如上面所述,每个数据页都有一个据页中。如上面所述,每个数据页都有一个 96 96 字节的页头,字节的页头,其中包含拥有该页的表的标识符其中包含拥有该页的
16、表的标识符 (ID)(ID)这样的系统信息,也这样的系统信息,也包含指向下一页及前面用过的页的指针。包含指向下一页及前面用过的页的指针。3 3空间使用分配管理空间使用分配管理 SQL Server SQL Server 向表或索引分配空间的基本单位为区向表或索引分配空间的基本单位为区域,一个区域长度为域,一个区域长度为8 8个连续的页面,也就是个连续的页面,也就是64KB64KB。区域分为以下两种类型:区域分为以下两种类型:统一区域统一区域:区域中的:区域中的8 8个页面只能存储同一种数据个页面只能存储同一种数据库对象。库对象。混合区域混合区域:区域中不同页面可以存储不同的数据:区域中不同页面
17、可以存储不同的数据库对象。但由于每个页面只能存储同一种数据库对库对象。但由于每个页面只能存储同一种数据库对象,所以一个混合区域最多可存储象,所以一个混合区域最多可存储8 8种数据库对象。种数据库对象。3 3空间使用分配管理空间使用分配管理 全局分配映射全局分配映射(Global Allocation MapGlobal Allocation Map,简称,简称GAMGAM)页面页面:GAMGAM页面中的每一位记录一个区域的分配情况,页面中的每一位记录一个区域的分配情况,当位值为当位值为1 1时时,说明区域为空闲区域;说明区域为空闲区域;当位值为当位值为0 0时时,表示区域已经被分配,表示区域已
18、经被分配使用。由于每个页面大小为使用。由于每个页面大小为8KB8KB,所以一个,所以一个GAMGAM页面能够覆盖页面能够覆盖6400064000个区域,即个区域,即4GB4GB。共享全局分配映射共享全局分配映射(Shared Global Allocation MapShared Global Allocation Map,简,简称称SGAMSGAM)页面页面:SGAMSGAM页面用于记录有空闲页面的混合区域。页面用于记录有空闲页面的混合区域。每个每个SGAMSGAM页面覆盖页面覆盖6400064000个区域。个区域。当位值为当位值为1 1时时,说明区域为,说明区域为混合区域,并且其中有空闲页
19、面;混合区域,并且其中有空闲页面;当位值为当位值为0 0时时,说明相应,说明相应的盘区没有被用作混合区域,或者它是一个没有空闲页可分的盘区没有被用作混合区域,或者它是一个没有空闲页可分配的混合区域。配的混合区域。4.4.索引分配映射索引分配映射管理管理 SQL ServerSQL Server使用使用索引分配映射索引分配映射(IAMIAM)页面管理堆或)页面管理堆或索引所分配区域的使用情况。每个索引所分配区域的使用情况。每个IAMIAM页面的页面头页面的页面头记录该记录该IAMIAM页面所映射区域范围的起始区域,其映射页面所映射区域范围的起始区域,其映射区中的每一位说明一个区域的使用状态,其中
20、第一区中的每一位说明一个区域的使用状态,其中第一位代表位代表IAMIAM页面所映射区域范围内的第一个区域,第页面所映射区域范围内的第一个区域,第二位代表第二个区域等等。当映射区中二位代表第二个区域等等。当映射区中某位为某位为0 0时,时,说明该位所映射区域仍未分配给拥有该说明该位所映射区域仍未分配给拥有该IAMIAM页面的对页面的对象使用;象使用;当其值为当其值为1 1时时,说明该位所映射区域已经分,说明该位所映射区域已经分配给拥有该配给拥有该IAMIAM页面的对象使用。页面的对象使用。5 5页面自由空间管理页面自由空间管理 当一个区域分配给某个数据库对象时,当一个区域分配给某个数据库对象时,
21、SQL SQL ServerServer使用使用PFSPFS(Page Free SpacePage Free Space)页面记录区页面记录区域内的单个页面是否分配使用,以及页面中的空域内的单个页面是否分配使用,以及页面中的空间使用情况:即全部空闲、间使用情况:即全部空闲、1%50%1%50%满、满、51%80%51%80%满、满、81%95%81%95%满,还是满,还是96%100%96%100%满。当满。当SQL ServerSQL Server需要需要分配新的页面,或者查找有自由空间页面时,它分配新的页面,或者查找有自由空间页面时,它使用使用PFSPFS页面中所记录的这些信息。页面中所
22、记录的这些信息。3.1.3 3.1.3 事务日志文件结构事务日志文件结构 1.1.事务日志事务日志SQL ServerSQL Server在内存中建立了一个缓冲区,在检索数据在内存中建立了一个缓冲区,在检索数据时,它将数据读入该缓冲区中,而在修改数据时,它时,它将数据读入该缓冲区中,而在修改数据时,它并不是直接修改磁盘中的数据,而是先在缓冲区中建并不是直接修改磁盘中的数据,而是先在缓冲区中建立修改数据副本,之后在页面刷新时再将它们写入磁立修改数据副本,之后在页面刷新时再将它们写入磁盘。这样做可以提高数据处理速度,减少磁盘读写次盘。这样做可以提高数据处理速度,减少磁盘读写次数。在缓冲区中被修改后
23、而没有写入磁盘的页面称作数。在缓冲区中被修改后而没有写入磁盘的页面称作“脏页脏页”,“脏页脏页”由由SQL ServerSQL Server迟写进程定期写入迟写进程定期写入磁盘,这一操作叫做磁盘,这一操作叫做“页面刷新页面刷新”。每当对缓冲区中的数据页面进行修改时,每当对缓冲区中的数据页面进行修改时,SQL ServerSQL Server自动在日志缓存中构造该操作的日志记录。自动在日志缓存中构造该操作的日志记录。3.1.3 3.1.3 事务日志文件结构事务日志文件结构 2 2事务日志的物理存储事务日志的物理存储一个数据库事务日志可以对应一个或多个物理文件,一个数据库事务日志可以对应一个或多个
24、物理文件,SQL Server SQL Server 在内部又将每个物理日志文件分成许多在内部又将每个物理日志文件分成许多个虚拟日志文件。虚拟日志文件没有固定大小,且物个虚拟日志文件。虚拟日志文件没有固定大小,且物理日志文件所包含的虚拟日志文件数不固定。理日志文件所包含的虚拟日志文件数不固定。3.1.3 3.1.3 事务日志文件结构事务日志文件结构 事务日志是回绕的日志文件。例如,假设有一个数据库,它包含一事务日志是回绕的日志文件。例如,假设有一个数据库,它包含一个分成个分成5 5个虚拟日志文件的物理日志文件。当创建数据库时,逻辑日个虚拟日志文件的物理日志文件。当创建数据库时,逻辑日志文件从物
25、理日志文件的始端开始。在逻辑日志的末端添加新的日志文件从物理日志文件的始端开始。在逻辑日志的末端添加新的日志记录,逻辑日志就向物理日志末端增长。截断操作发生时,删除志记录,逻辑日志就向物理日志末端增长。截断操作发生时,删除最小恢复日志序号(最小恢复日志序号(MinLSNMinLSN)之前的虚拟日志内的记录,这部分日)之前的虚拟日志内的记录,这部分日志记录所占用的空间即可被重复使用。志记录所占用的空间即可被重复使用。3.1.3 3.1.3 事务日志文件结构事务日志文件结构 当逻辑日志的末端到达物理日志文件的末端时,新的日志记录绕当逻辑日志的末端到达物理日志文件的末端时,新的日志记录绕回物理日志文
展开阅读全文