1.存储系统层次
典型的存储介质的层级结构如下图所示
(1)高速缓冲存储器:提高主存储器速度的存储技术。目的是解决CPU和主存储器之间的小容量存储器,但存储速度很快。
(2)主存储器:又称主存或内存。计算机中每一条指令的执行或对每个数据的操作,都是作用于驻留在主存的信息上。特点:随机访问和易失性。
(3)虚拟存储器:组成虚拟存储器和存储管理部件,一边允许人们使用比主存容量大得多的地址空间来访问主存。
(4)二级存储器:又称辅助存储器或外存。速度比内存慢,而存储容量则比内存大得多,并且大都支持随机访问,访问不同数据项所需时间的差别相对较少。如:光盘、磁盘、移动U盘等。
(5)三级存储器:有的数据库的数据量要比在单台及其甚至相当大的集群系统的磁盘所能存储的容量大得多。所以就提出了三级存储器技术,用来保存以太字节计数的数据容量。特点:存储量大、读写速度慢。
2.磁盘存储器的结构
使用二级存储器是数据库管理系统的重要特性之一,而二级存储器几乎都是基于磁盘的。
磁盘的结构主要由磁盘组合和磁头组合构成。磁盘组合是由一个或多个圆形的盘片组成,它们围绕着一根中心主轴旋转。磁头组合由一个或多个磁头组成,用于读写磁盘片上的信息。存储二进制位的存储单元被组织成磁道,磁道被组织成扇区,扇区是磁盘不可分割的物理单位。磁盘通常也被逻辑分成若干块,每个块由一个或多个扇区构成。每个块也是磁盘与主存之间所传输数据的逻辑单元,块的大小通常是为4~56KB。在主存中,这些块通常被称作页或逻辑块。
磁盘读写效率主要取决于寻道和旋转操作,磁盘的调度策略的目的是减少机械运动。
优化寻道时间的策略:
(1)先来先服务。按访问请求的先后顺序处理各请求,未做任何优化,效率低,适于稀疏的请求。
(2)近者优先。优先处理当前磁头位置附近的请求。
(3)全程移动扫描。磁头在0号磁道到最大磁道之间往复移动,沿途实施服务。
(4)移动扫描。它是策略3的改进,若前方无服务请求,则磁头反向移动。
(5)分组扫描。对访道请求分组,组内移动扫描,该组完成后转到下一组。
(6)间歇式扫描。从0号柱面扫描到最大编号柱面,每经一柱面,磁盘旋转n次。当扫描一周后,磁头直接返回0号柱面,途中不停留。
3.SQL server的存储体系结构
(1)页
在SQL server中,数据存储的基本单位是页,即为数据库中的数据文件分配的磁盘空间可以从逻辑上划分成页。
页的大小为8KB,每页的开头是96KB的页首,用于存储有关页的系统信息,此信息包括页码、页类型、页可用空间以及拥有该页的对象的分配单元ID。
在数据页上,数据行紧接着页首按顺序放置。页的末尾是行偏移表,对于页中的每一行,每个行偏移表都包含一个条目。每个条目记录对应行的第一个字节与页首的距离。行偏移表中的条目的顺序与页中行的顺序相反。
(2)区
为了有效管理页,SQL server中的所有页都存储在区中,区是管理空间的基本单位。一个区由8个物理上连续的页组成。
SQL server提供如下两种类型的区:
1)统一区:由单个对象所有。区中的所有8页只能由所属对象使用。
2)混合区:最多可由8个对象共享。区中8页的每一页可由不同的对象所有。
4.SQL server的I/O体系结构
数据库的主要用途是存储和检索数据。因此,执行大量的磁盘读取和写入是数据库的本质特征之一。磁盘I/O操作会占用很多资源,并且需要相对较长的时间才能完成。
SQL server实例中的I/O划分为逻辑I/O和物理I/O。每次数据库引擎请求高速缓存中的页时都将发生逻辑读取。如果数据库引擎所请求的页不在高速缓存中,则执行物理读取,将该页读取高速缓存。