估计简单大对象占用的页数

可以估计所有简单大对象的总页数,或者可以根据简单大对象的中等大小估计页数。

Blob 页可以驻留在该表所在的数据库空间中,也可以驻留在 Blob 空间中。 有关何时使用 Blob 空间的更多信息,请参阅将简单大对象存储在表空间或单独的 Blob 空间中

用于估计 Blob 页的以下方法会产生比较保守(高)的估计值,因为单个 TEXT 或 BYTE 列不需要占用表空间中的整个 Blob 页。换言之,表空间中的 Blob 页可以包含多个 TEXT 或 BYTE 列。

要估算 Blob 页数:

  1. onstat -b 获取页大小。
  2. 用下列公式来计算 Blob 页的可用部分:
    bpuse = pagesize - 32
    
  3. 对于 blobsize n 的每个字节,使用以下公式 计算该字节占用的页数 (bpages_n):
    bpages1 = ceiling(bytesize1/bpuse)
    bpages2 = ceiling(bytesize2/bpuse)
    ...
    bpages_n = ceiling(bytesize_n/bpuse)
    

    ceiling() 函数表示,应该向上舍入到最接近的整数值。

  4. 求出所有简单大对象的页数总和,如下所示:
    blobpages = bpages1 + bpages2 + ... + bpagesn 
    

或者,您可以根据简单大对象(TEXT 或 BYTE 数据)的中等大小(即,出现最频繁的简单大对象数据大小)进行估计。这种方法精确度较低,但更容易计算。

要根据简单大对象的中值大小估算 Blob 页的数量:

  1. 计算中等大小的简单大对象所需的页数,如下所示:
    mpages = ceiling(mblobsize/bpuse)
  2. 将此值乘以简单大对象的总数,如下所示:
    blobpages = blobcount * 
    mpages