问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

SQL数据库中都是以表的形式存储数据的吗?

发布网友 发布时间:2022-04-29 12:28

我来回答

7个回答

热心网友 时间:2022-04-09 00:47

SQLSERVER数据库中数据存储:
  一:存储文件类型
  SQLSERVER有两种数据存储文件,分别是数据文件和日志文件。
  其中:数据文件是以8K(=8192Byte)的页面(Page)作为存储单元的。
  而日志文件是以日志记录作为存储单元。  本文只讨论数据文件的存储方式,不涉及到日志文件存储方式。
  数据文件以页面做为存储单元存储数据,要理解数据文件的存储方式,必须了解SQLSERVER中定义的页面类型种类。
  二:页面类型
  SQLSERVER中页面类型有8种,具体每种类型的详细说明,见下图:
  
  用户的数据一般存放在数据页面中,由上图可以看出,数据页包含数据行中除 text、ntext 和 image 数据外的所有数据,text、ntext 和 image 数据存储在单独的页中。那么在一个数据页面中,数据是如何存放,SQLSERVER又是根据什么来定位页面与页面上的数据呢。要回答这个问题,有必要先了解数据页面的具体结构。
  三:数据页面结构
  在数据页上,数据行紧接着页首按顺序放置。在页尾有一个行偏移表。在行偏移表中,页上的每一行都有一个条目,每个条目记录那一行的第一个字节与页首的距离。行偏移表中的条目序列与页中行的序列相反。数据页面结构如下图所示,下面将详细解释

  其中:数据页面页首:96个字节,保存着页面的系统信息,如页的类型、页的可用空间量、拥有页的对象的对象 ID 以及该页面所属于哪个物理文件。
     数据区:对应于上图中所有数据行的总区域,存放真正的数据,是以Slot为单位。一个Slot就是对应于一条数据记录行,从0开始编号,以16进制反序保存,Slot0, Slot1....。
    行偏移数组:用于记录该数据页面中每个Slot在数据页面所处的相对位置,便于定位和检索每个Slot在数据页面中的位置,数组中每个记录占两个字节。
  四:存储分配单位:盘区(扩展 Extend)
  虽然SQLSERVER中数据文件存储单位是页面(Page),但实际SQLSERVE并不是为页面为单位给数据分配空间,SQLSERVER默认的存储分配单位是盘区。这样做的主要原因是为了提高性能。为了避免频繁的读写IO,在表或其它对象分配存储空间,不是直接分配一个8K的页面,而是以一个盘区(Extend)为存储分配单位,一个盘区为8个页面(=8*8K=64K)。
  但是这样做虽然减少了频繁的IO读写,提高的数据库性能,但却导致出一个新问题,那就是在存储那些只有少量数据,不足8K的对象,如果也是分配给一个盘区,就会存在存储空间上的浪费,降低了空间分配效率。
  为解决上述问题,SQLSERVER提供了一种解决方案,定义了两种盘区类型,统一盘区和混合盘区。
  其中:统一盘区只能存放同一个对象,该对象拥有这个盘区的所有页面    
     混合盘区:由多个对象共同拥有该盘区。
  在实际为对象分配存储盘区时,为了提高空间利用率,默认的情况下,如果一个对象一开始大小小于8个页面,就尽量放在混合盘区中,如果该对象大小增加到8个页面后,SQLSERVER会为这个对象重新分配一个统一盘区。
  为了能够通过上述策略来实现为对象分配存储盘区,SQLSERVER提供了GAM/SGAM机制来管理和维护数据文件的盘区信息。

热心网友 时间:2022-04-09 02:05

SQLSERVER有两种数据存储文件,分别是数据文件和日志文件。

热心网友 时间:2022-04-09 03:40

是的,关系型数据库都是

热心网友 时间:2022-04-09 05:31

是的

热心网友 时间:2022-04-09 07:39

不一定吧 这个不是很了解哦。

热心网友 时间:2022-04-09 10:04

SQLSERVER数据库中数据存储:
  一:存储文件类型
  SQLSERVER有两种数据存储文件,分别是数据文件和日志文件。
  其中:数据文件是以8K(=8192Byte)的页面(Page)作为存储单元的。
  而日志文件是以日志记录作为存储单元。  本文只讨论数据文件的存储方式,不涉及到日志文件存储方式。
  数据文件以页面做为存储单元存储数据,要理解数据文件的存储方式,必须了解SQLSERVER中定义的页面类型种类。
  二:页面类型
  SQLSERVER中页面类型有8种,具体每种类型的详细说明,见下图:
  
  用户的数据一般存放在数据页面中,由上图可以看出,数据页包含数据行中除 text、ntext 和 image 数据外的所有数据,text、ntext 和 image 数据存储在单独的页中。那么在一个数据页面中,数据是如何存放,SQLSERVER又是根据什么来定位页面与页面上的数据呢。要回答这个问题,有必要先了解数据页面的具体结构。
  三:数据页面结构
  在数据页上,数据行紧接着页首按顺序放置。在页尾有一个行偏移表。在行偏移表中,页上的每一行都有一个条目,每个条目记录那一行的第一个字节与页首的距离。行偏移表中的条目序列与页中行的序列相反。数据页面结构如下图所示,下面将详细解释

  其中:数据页面页首:96个字节,保存着页面的系统信息,如页的类型、页的可用空间量、拥有页的对象的对象 ID 以及该页面所属于哪个物理文件。
     数据区:对应于上图中所有数据行的总区域,存放真正的数据,是以Slot为单位。一个Slot就是对应于一条数据记录行,从0开始编号,以16进制反序保存,Slot0, Slot1....。
    行偏移数组:用于记录该数据页面中每个Slot在数据页面所处的相对位置,便于定位和检索每个Slot在数据页面中的位置,数组中每个记录占两个字节。
  四:存储分配单位:盘区(扩展 Extend)
  虽然SQLSERVER中数据文件存储单位是页面(Page),但实际SQLSERVE并不是为页面为单位给数据分配空间,SQLSERVER默认的存储分配单位是盘区。这样做的主要原因是为了提高性能。为了避免频繁的读写IO,在表或其它对象分配存储空间,不是直接分配一个8K的页面,而是以一个盘区(Extend)为存储分配单位,一个盘区为8个页面(=8*8K=64K)。
  但是这样做虽然减少了频繁的IO读写,提高的数据库性能,但却导致出一个新问题,那就是在存储那些只有少量数据,不足8K的对象,如果也是分配给一个盘区,就会存在存储空间上的浪费,降低了空间分配效率。
  为解决上述问题,SQLSERVER提供了一种解决方案,定义了两种盘区类型,统一盘区和混合盘区。
  其中:统一盘区只能存放同一个对象,该对象拥有这个盘区的所有页面    
     混合盘区:由多个对象共同拥有该盘区。
  在实际为对象分配存储盘区时,为了提高空间利用率,默认的情况下,如果一个对象一开始大小小于8个页面,就尽量放在混合盘区中,如果该对象大小增加到8个页面后,SQLSERVER会为这个对象重新分配一个统一盘区。
  为了能够通过上述策略来实现为对象分配存储盘区,SQLSERVER提供了GAM/SGAM机制来管理和维护数据文件的盘区信息。
  其中:
  全局分配映射表 (GAM)
  GAM 页记录已分配的盘区,包括统一盘区和混合盘区。每个GAM 包含 64,000 个盘区,将近 4 GB 的数据。GAM 对所涵盖区间内的每个盘区都有一位。如果这个位是 1,则盘区未分配(可用);如果这个位是 0,则盘区已分配。
  共享全局分配映射表 (SGAM)
  SGAM 页只记录混合盘区,这些盘区当前用作混合盘区而且至少有一个未使用的页。每个 SGAM 包含 64,000 个扩展盘区,将近 4 GB 的数据。SGAM 对所涵盖区间内的每个扩展盘区都有一位。如果这个位是 1,则该扩展盘区就用作混合扩展盘区且有可用的页;如果这个位是 0,则该扩展盘区不用作混合扩展盘区,或者虽然用作混合扩展盘区但其所有页都正在使用中。
  根据扩展盘区的当前使用情况,每个扩展盘区在 GAM 和 SGAM 中有以下位模式设置。
  
  通过这样的策略简化了盘区管理算法。若要分配统一盘区,SQL Server 在 GAM 中搜索是 1 的位,然后将它设成 0。若要查找有可用页的混合盘区,SQL Server 在 SGAM 中搜索是 1 的位。若要分配混合盘区,SQL Server 在 GAM 中搜索是 1 的位,并将它设置为 0,然后将 SGAM 中相应的位也设置为 1。若要释放盘区,SQL Server 应确保 GAM 位设置为 1 而且 SGAM 位设置为 0。SQL Server 内部实际使用的算法比这里叙述的算法要复杂(SQL Server 在数据库中均匀分布数据),,但道理大致如此。
  五:查看实际的数据页面信息
  数据存储相关的知识大致如上所述,理论性较强,但我们可以通过未公开的DBCC命令,直接查看某个数据页面的内容,得到直观上的数据存储信息。
  具体是通过使用DBCC命令:DBCC PAGE.
  简单的使用例子如下:
  //查看数据页面的内容的方法
  --打开查看数据页面的开关
  dbcc traceon(3604) //打开跟踪标记
  dbcc Page(northwind,1,100,1) //打开northwind数据库,第101个页面的信息

热心网友 时间:2022-04-09 12:45

除表外没听说有其他存储方式
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 楼梯的水泥台阶上可以铺地板革吗 手机腾讯会议共享屏幕播放视频没声 腾讯会议共享屏幕没声音怎么办 把打印机默认图标删除了,在插上打印机怎么发现不到打印机 打印机的驱动安装好了 但是打印机的图标被我删了 请问下怎么样才能把图标再弄出来了? 打印机图标被删除后如何恢复 安徽数据恢复数据存储基本策略是怎样设定的? 我的EPSON MEI打印机从电脑中删除了,但打印机的图标显示在电脑里, 如何实现用户自己的数据文件的分类存放策略 标红的两个打印机已经删除了,再添加就添加到副本2的打印机,但是在word打印的时候都会显示出来,怎么办 求java jdk最新中文版下载地址 运行时环境中存储分配策略包括 jdk1.5最新版本是哪个? 如何删除打印机图标,已经将所见的打印机全部删除可是图标依然存在,怎么解决? 默认的打印机图标被我删掉了,请问各位大师怎么恢复?非常感谢!!! 为什么打印机驱动删不掉说正在使用 然后删掉的打印机自动变出来 控制面板-设备基本打印机中以前添加的打印机删除刷新后就又出现了,求解? 居民健康卡绑定父母身份证可以吗? 可以两个手机同时办一个人的电子健康卡吗- 问一问 电子健康卡绑定亲情关系为什么说没有亲情关系电子健康卡绑定亲情账号为什么说没有亲情关系呢?_百度问一问 电子健康卡登了孩子的怎么登父母的 下载了个qq同步助手为什么我通讯录里的电话怎么都不见了 电子社保卡可以绑定家人的吗 以下哪些属性定义了 virtual san 数据存储的存储策略配置 在保障数据可靠性上现在火热的软件定义存储和传统存储有什么区别? 大数据归档应是企业的关键任务之一 DNF名字怎么打特殊符号? DNF角色名怎么加特殊符号? DNF角色名字怎样输入特殊符号? DNF角色名如何输入五角星等特殊符号 打DNF角色名时怎么打上特殊符号? 2022年教师退休有教师资格证和无教师资格证补贴差别 退休了教师资格证还有什么用 退休了考个什么证书有用? 有教师资格证的退休后能享受什么待遇? 河南省新元鸿蒙教育信息咨询有限公司怎么样? 如何看待武汉大学计算机学院开设全国首个鸿蒙系统课?会带来哪些影响? 梦见爸爸被人砍下一只手,隐隐约约知道是谁干的姐姐还割脉,弟弟要我... 教师资格证对不干教师的人退休有用吗? 学习思维绘画有哪些好处?该不该让孩子去鸿蒙教育思维绘画学习? 退休教师有必要进行教师资格认证吗 襄垣县文化园艺科教中心是公立学校还是私立 教师资格证退休了会失效吗
  • 焦点

最新推荐

猜你喜欢

热门推荐