Jig*_*gao 4 data-pages terminology dbms
我正在学习DBMS的数据格式,发现我们有一个术语:page。
页面是从外部存储(例如磁盘,SSD)获取的主内存中的数据,当这些页面被查询获取时,几个页面将首先“缓存”到低级缓存。
这让我想起了操作系统和计算机体系结构中使用的同一个术语页面。来自 Wiki 的关于这个“分页”的一些正式描述是:
分页是一种内存管理方案,计算机通过该方案从辅助存储器中存储和检索数据以在主存储器中使用。在此方案中,操作系统从称为页的相同大小的块中检索辅助存储中的数据。分页是现代操作系统中虚拟内存实现的重要组成部分,使用二级存储让程序超过可用物理内存的大小。
那么就涉及到第一个问题:
术语页面在 DBMS 和 OS 中具有相同的含义吗?
更进一步:
该问题2是主要的原因,我在这里提高的问题,并开始问自己,为什么NSM,PAX页面专用DBMS。这个问题更笼统,并不关注任何特定的 DBMS。
术语页面在 DBMS 和 OS 中具有相同的含义吗?
一般来说,是的。该术语PAGE
是最小可分配空间单元的通用术语。例如,在 SQL Server 中,页面的大小是固定的,过去一直是 4k 和 8k,这取决于版本(不包括作为虚拟内存而非数据库结构的大页面),而在 Windows 中,页面可以有多种大小,具体取决于选项和底层硬件。
假设page在DBMS和OS中的含义是一样的,为什么我们只在DBMS中指定NSM和PAX呢?这种页面格式可以移植到操作系统吗?
我没有阅读整篇论文,因为它也重载了同一个术语。请注意,硬件和底层操作系统可能会改变PAGE
大小,但不会改变一般含义。它的使用非常繁重,TBH 您可以在自己的操作系统中制作任何您想要的东西。
这有点过于通用和高级,无法真正“回答”本身,并且“答案”将取决于硬件和软件并且是特定的。您可能想稍微缩小一下重点并提出更尖锐的问题,因为恕我直言,这是非常广泛的问题。
编辑:
您还提到了 SSD,它也有一个单元(讽刺)令人震惊地PAGE
依赖于存储控制器和固件。有些 SSD 使用 1MB 或更多的页面,有些则更小。
通常,当我们谈论“低级缓存”时,它是数据或代码缓存,通常称为行或段而不是页。
也许是一个额外的问题。我在哪里以及如何从 SQL 服务器找到页面大小或页面格式的文档或实现?任何特定的 DBMS 或 SQL 服务器都会让我高兴。
SQL Server 在此处记录了体系结构。这是固定的,无法更改。
Windows 页面大小(不要与分页文件混淆)可以通过调用GetSystemInfo (Windows API)来找到,它会填充一个_SYSTEM_INFO结构,该结构有一个被调用的成员dwPageSize
,它会告诉你系统的当前页面大小 - 这应该仍然在撰写本文时为 4k。
归档时间: |
|
查看次数: |
738 次 |
最近记录: |