使用 DB2 Extender 时,管理支持表中最后可能会累积过时的项目。某人可能删除了媒体文件,但未删除数据库中对它的引用。删除过时的元数据可改进性能并收回存储空间。
使用 API: 下列示例中的样本代码清除 ANITAS 拥有的所有用户表的图象数据。它包括一些差错检验代码。完整的样本程序在客户机上 SAMPLES 子目录中的 API.C 文件中。
/*---- query database using DBiAdminReorgMetadata API ----*/ step="DBiAdminReorgMetadata API"; rc = DBiAdminReorgMetadata("anitas"); if (rc < 0) { printf("%s: %s FAILED!\n", argv[0], step); printMsg(rc); DBiGetError(&sqlcode, errorMsgText); printf("sqlcode=%i, errorMsgText=%s\n", sqlcode, errorMsgText); fail = TRUE; } else if (rc > 0) { printf("%s: %s, warning detected.\n", argv[0], step); printMsg(rc); DBiGetError(&sqlcode, errorMsgText); printf("sqlcode=%i, errorMsgText=%s\n", sqlcode, errorMsgText); } else printf("%s: %s PASSED\n\n", argv[0], step); /*---- end of query using DBiAdminReorgMetadata API ----*/ |
使用 db2ext 命令行:
reorg database user anitas for db2image
若您不是 DBA,但具有 CONTROL 权限, 可使用 DBxReorgMetadata API 或 REORG 命令 来清除您拥有的表的元数据。