Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


默认新建表存储块空闲度百分比(block_pctfree)

📄字数 678
👁️阅读量 加载中...

引入版本

v11.0.0

功能描述

数据页的默认预留空间百分比。

参数属性

属性属性值
参数类型INTEGER
默认值15
取值范围[0, 99]
影响范围系统级
修改方式在线修改,立即生效

使用场景说明

  1. block_pctfree 适用于堆表/临时表/全局临时表。
  2. 在线修改 block_pctfree 不会影响已有表。
  3. 支持访问系统表 SYSDBA.SYS_TABLES 的 PCTFREE 字段查看各个表对象的数据页默认预留空间。
  4. 创表语句支持显式指定数据页的默认预留空间,则优先使用指定的值(该参数值无效)。
  5. block_pctfree 可减少插入/更新场景下数据行溢出:
场景应用
INSERT 大行对于长度超过 4KB 的行记录,一个数据页无法容纳 2 条记录,且每个数据页都必然会产生数据溢出(Overflow),
此场景下可调整 block_pctfree > 50,以保证一个数据页中永远只有一条数据,从而避免产生数据溢出(Overflow)。
UPDATE 变长新数据长度大于旧数据长度的变长字段更新,可利用预留的页内空间容纳溢出的数据内容。

该参数值过大会造成空间浪费,过小可能导致数据行访问产生多次IO,需要更具行数据长度和使用方式合理配置。

示例

  • 在线修改 block_pctfree
sql
SQL> set block_pctfree to 15;

Execute successful.
Use time:2 ms.
  • 在线查看 block_pctfree
sql
SQL> show block_pctfree;

+---------------+
| BLOCK_PCTFREE |
+---------------+
| 15            |
+---------------+

(1 row)
Use time:0 ms.