计算表空间的使用情况

可以通过 MON_GET_TABLESPACE 表函数来确定当前使用中的表空间量。 此函数返回的信息可以帮助您确定是否应该尝试回收空闲存储器。

关于本任务

本任务提供的信息可以用于确定,表空间的高水位标记下方的哪些扩展数据块包含未使用的空间。 根据此情况,您可以确定回收空闲存储器是否有益。


限制

虽然您可以确定有关所有表空间的各种用法属性,但只有使用 Db2® V 9.7 或更高版本创建的表空间才具有可回收存储功能。 如果您希望能够回收通过先前版本的 DB2 数据库产品创建的表空间中的存储器,那么必须卸载数据并接着将其重新装入到通过 DB2 V9.7 创建的表空间或者通过联机移动操作来移动数据。 从 V11.1 M4 FP4 开始,才能将可回收存储器功能与 IBM® Db2® pureScale® Feature 配合使用。

过程

要确定高水位标记下方的空闲空间量,请完成下列步骤:

  1. 构造包含 MON_GET_TABLESPACE 表函数的 SELECT 语句,以便报告表空间的状态。 例如,以下语句将显示所有数据库分区中所有表空间的总页数、空闲页数和已用页数:
    SELECT varchar(tbsp_name, 30) as tbsp_name, 
      reclaimable_space_enabled,
      tbsp_free_pages,
      tbsp_page_top,
      tbsp_usable_pages
    FROM TABLE(MON_GET_TABLESPACE('',-2)) AS t 
    ORDER BY tbsp_free_pages ASC
  2. 运行此语句。
    您将看到类似如下的输出:
    TBSP_NAME                      RECLAIMABLE_SPACE_ENABLED TBSP_FREE_PAGES      TBSP_PAGE_TOP        TBSP_USABLE_PAGES
    ------------------------------ ------------------------- -------------------- -------------------- --------------------
    TEMPSPACE1                                             0                    0                    0                    1
    SYSTOOLSTMPSPACE                                       0                    0                    0                    1
    TBSP1                                                  1                    0                 1632                 1632
    SMSDEMO                                                0                    0                    0                    1
    SYSCATSPACE                                            1                 2012                10272                12284
    USERSPACE1                                             1                 2496                 1696                 4064
    IBMDB2SAMPLEREL                                        1                 3328                  736                 4064
    TS1                                                    1                 3584                  480                 4064
    TS2                                                    1                 3968                   96                 4064
    TBSP2                                                  1                 3968                   96                 4064
    TBSAUTO                                                1                 3968                   96                 4064
    SYSTOOLSPACE                                           1                 3976                  116                 4092
    
      12 record(s) selected.
  3. 使用以下公式来确定高水位标记下方的空闲页数:

    freeSpaceBelowHWM = 空闲页面数 - (可用页面数 - 页面顶部)

结果

通过使用步骤 2中的报告中的信息, USERSPACE1 的高水位标记下的可用空间将为 2496-(4064-1696) = 128 页。 此数目仅略超出该表空间中空闲页总数的 5%。

后续操作

在这种情况下,可能不值得尝试回收此空间。 但是,如果您希望回收那 128 页,那么可以运行 ALTER TABLESPACE USERSPACE1 REDUCE MAX 语句。 如果您已执行此操作,然后再次运行 MON_GET_TABLESPACE 表函数,那么将看到以下输出:
TBSP_NAME                      RECLAIMABLE_SPACE_ENABLED TBSP_FREE_PAGES      TBSP_PAGE_TOP        TBSP_USABLE_PAGES
------------------------------ ------------------------- -------------------- -------------------- --------------------
TEMPSPACE1                                             0                    0                    0                    1
USERSPACE1                                             1                    0                 1568                 1568
SYSTOOLSTMPSPACE                                       0                    0                    0                    1
TBSP1                                                  1                    0                 1632                 1632
SMSDEMO                                                0                    0                    0                    1
SYSCATSPACE                                            1                 2012                10272                12284
IBMDB2SAMPLEREL                                        1                 3328                  736                 4064
TS1                                                    1                 3584                  480                 4064
TS2                                                    1                 3968                   96                 4064
TBSP2                                                  1                 3968                   96                 4064
TBSAUTO                                                1                 3968                   96                 4064
SYSTOOLSPACE                                           1                 3976                  116                 4092

  12 record(s) selected.