行读取开销

当数据库服务器需要检查不在内存中的某一行时,它必须从磁盘读取该行。数据库服务器不只是读取一行;它要读取包含该行的整页。如果该行跨越多页,那么数据库服务器要读取所有这些页。

读取一页的实际成本易变且难以预计。 实际成本是下表中所示因素的组合。

因素 因素的影响
缓冲 如果需要的页已经在页缓冲区中,那么读取的成本几乎为零。
争用 如果两个或多个应用程序需要存取磁盘硬件,那么 I/O 请求会延迟。
寻道时间 磁盘所做的最慢操作是寻道;也就是将存取臂移动到存放数据的磁道上。寻道时间取决于磁盘的速度和操作开始时磁盘臂的位置。寻道时间变化范围在 0 到接近 1 秒。
等待时间 直到页开头旋转至存取臂下时传输才开始。此等待时间或旋转延迟取决于磁盘的速度和操作开始时磁盘的位置。等待时间的变化范围可从零到几毫秒。

读取一页的时间成本可以从几微秒(对于已存在于缓冲区的页)到几毫秒(当争用为零且磁盘臂已就位时),到几百毫秒(当该页处于争用中且磁盘臂位于磁盘较远的柱面上时)。