2

为什么 Oracle 数据库块和操作系统块的大小不同?我搜索了 Oracle 网站,但没有找到满意的答案。

4

1 回答 1

2

数据库块是逻辑存储单元,操作系统块是物理存储单元。它们的大小不必不同,但只要逻辑块大小等于或大于物理块大小的倍数,它们就可以。这允许 Oracle 检索最佳数量的数据,而不管底层硬件如何,因此它可以更高效且开销更少。

数据库概念指南

数据块和操作系统块

在物理级别,数据库数据存储在由操作系统块组成的磁盘文件中。操作系统块是操作系统可以读取或写入的最小数据单位。相反,Oracle 块是一种逻辑存储结构,其大小和结构对于操作系统来说是未知的。

...

数据库请求多个数据块中的数据,而不是操作系统块。

当数据库请求一个数据块时,操作系统将此操作转换为对永久存储数据的请求。数据块与操作系统块的逻辑分离具有以下含义:

  • 应用程序不需要确定磁盘上数据的物理地址。

  • 数据库数据可以在多个物理磁盘上进行条带化或镜像。

管理指南也这样说:

如果数据库块大小与操作系统块大小不同,则确保数据库块大小是操作系统块大小的倍数。

...

更大的数据块大小在磁盘和内存 I/O(数据的访问和存储)方面提供了更高的效率。因此,如果存在以下情况,请考虑指定大于操作系统块大小的块大小:

  • Oracle 数据库位于具有大量内存和快速磁盘驱动器的大型计算机系统上。例如,由具有大量硬件资源的大型计算机控制的数据库通常使用 4K 或更大的数据块大小。

  • 运行 Oracle 数据库的操作系统使用较小的操作系统块大小。例如,如果操作系统块大小为 1K,并且默认数据块大小与此匹配,则数据库可能在正常操作期间执行过多的磁盘 I/O。在这种情况下,为了获得最佳性能,一个数据库块应该由多个操作系统块组成。

于 2013-10-04T14:16:44.950 回答