为表空间 tblspace 指定第一个和下一个扩展数据块大小

如果要减少表空间 tblspace 扩展数据块数,并降低发生必须将表空间 tblspace 扩展数据块放入非主块的情况的频率,可以指定第一个和下一个扩展数据块大小。 (主块为数据库空间中的初始块。)

可选择性地指定第一个扩展数据块大小、下一个扩展数据块大小,以及第一个和/或下一个扩展数据块大小。如果不为表空间 tblspace 指定第一个或下一个扩展数据块大小,那么 GBase 8s 将使用现有的缺省扩展数据块大小。

可使用 TBLTBLFIRST 和 TBLTBLNEXT 配置参数为表空间 tblspace 指定第一个或下一个扩展数据块大小,该表空间位于在初始化服务器时创建的根数据库空间中。

可使用 onspaces 实用程序为非根数据库表空间中的表空间 tblspace 指定第一个和下一个扩展数据块大小。

创建数据库空间时,可以仅指定第一个和下一个扩展数据块大小。创建数据库空间后,不能改变第一个和下一个扩展数据块大小的规范。另外,您还不能指定临时数据库空间、智能大对象空间、BLOB 空间或外部空间的扩展数据块大小。创建数据库空间之后,您将无法改变第一个和下一个扩展数据块大小的规格。

要指定第一个和下一个扩展数据块大小,请执行以下操作:

  1. 确定在表空间 tblspace 中所需的总页数。
    页数等于表数 + 拆离索引数 + 可能位于数据库空间中的表分段数 + 表空间 tblspace 的一个页面。
  2. 计算页数所需的 KB 数。
    此数字将取决于系统上的一个页面的 KB 数。
  3. 通过考虑在创建数据库空间期间分配的表空间 tblspace 的所有扩展数据块的重要性,以及是否必须连续分配这些扩展数据块来确定系统上的空间管理需求。
    其中,最重要的就是第一个扩展数据块大小必须更大。如果不是很在意辅助块中存在不连 续扩展数据块,那么第一个和下一个扩展数据块大小可以小一些。
  4. 如下所示,指定扩展数据块大小:
    • 如果空间需求适用于根数据库空间,那么在 TBLTBLFIRST 配置参数中指定第一个扩展数据块大小并在 TBLTBLNEXT 配置参数中指定下一个扩展数据块大小。 然后初始化数据库服务器实例。
    • 如果空间需求适用于非根数据库空间,那么通过使用 onspaces 实用程序在命令行上指示第一个和下一个扩展数据块大小从而创建数据库空间。
扩展数据块大小必须以 KB 计,并且必须是页大小的倍数。指定第一个和下一个扩展数据块大小时,请遵循以下指南:
扩展数据块的类型 最小大小 最大大小
非根数据库空间中的第一个扩展数据块 相当于 50 页(以 KB 指定)。这是系统缺省值。 例如,对于 2 KB 页面系统,最小长度为 100。 初始块的大小,减去任何系统对象(如保留页、数据库表空间,以及物理和逻辑日志)所需的空间。
根数据库空间中的第一个扩展数据块 相当于 250 页(以 KB 指定)。这是系统缺省值。 初始块的大小,减去任何系统对象(如保留页、数据库表空间,以及物理和逻辑日志)所需的空间。
下一个扩展数据块 为系统上磁盘页大小的 4 倍。 在任何类型的数据库空间上,缺省值均为 50 页。 最大块大小减去 3 页。
可使用以下 onspaces 实用程序和 -ef-en 选项为非根数据库表空间中的表空间 tblspace 指定第一个和下一个扩展数据块大小:
  • 第一个扩展数据块大小:-ef size_in_kbytes
  • 下一个扩展数据块大小:-en size_in_kbytes
例如,可以指定:
onspaces -c -d dbspace1 -p /usr/data/dbspace1 -o 0 -s 1000000 -e 2000 -n 1000

可使用 Oncheck -ptoncheck -pT 显示表空间 tblspace 的第一个和下一个扩展数据块大小。

如果正在使用数据复制并且在主数据库服务器上创建了数据库空间,那么第一个和下一个扩展数据块大小将通过 ADDCHK 日志记录传递到辅助数据库服务器。

有关 onspaces 实用程序、oncheck 命令以及为表空间 tblspace 指定第一个和下一个扩展数据块大小的更多信息,请参阅 GBase 8s 管理员参考