指定PCTFREE参数

PCTFREE参数用于为数据块中已有行可能的增长更新预留的空间的百分比。如CREATE TABLE中对于某个分区指定了如下参数:

PCTFREE 20

这表明该分区的所有数据块都预留出20%的空间以容纳这些数据块内部的数据行可能发生的增长。图13-1举例说明了PCTFREE:

../../../../../../_images/image3.jpeg

图374 PCTFREE = 20%

数据块允许插入行直到占用80%的空间,保留20%的空间用于数据块已有行的更新操作。在数据块达到PCTFREE指定的百分比之前,其空闲空间同时被新插入的行和数据块变长头部的增长所填充。

设置PCTFREE参数之前,应确保对于数据表的数据特性有所了解。如果有很多会使得数据行长度增加的操作,PCTFREE的值应该增大;若大部分操作不影响行长,则该参数应该低一些。选取此值的目的是在存储空间的大小和更新操作的性能之间取得一个最佳的平衡。

PCTFREE参数的默认值是10%。可以使用0~100之间(包括0和100)的任意整数,但是,PCTFREE和PCTUSED参数取值之和不能超过100。

  • 指定较小PCTFREE参数值的作用
  1. 为该数据表模式的数据行的更新保留较少的空间
  2. 允许通过插入较多的数据行填充数据块空间
  3. 每个数据块可以存储更多的数据行,以节省存储一个表模式的空间

例如,对于一个更新操作很少的表,选取一个较小的PCTFREE值应该是合适的。

  • 指定较大PCTFREE参数值的作用
  1. 为该数据表模式的数据行的更新保留较多的空间
  2. 可以提高更新性能,因为神通数据库可以利用保留的空间而不必将新行链接到其他数据块
  3. 链接数目减少用样也可以提高其他各种操作的性能

例如,对于一个频繁更新的表,选取一个较大的PCTFREE值应该是合适的。