使用 DB2 Extender 時,作廢的項目最後會堆積在管理支援表格內。可能有人刪除媒體檔案, 但未刪除資料庫中對該檔案的參照。刪除作廢的 meta 資料,可以改善效能和收回儲存空間。
使用 API:中的下列範例中的範例程式碼會清除 ANITAS 擁有的所有使用者表格的影像 meta 資料。 該範例包括一些錯誤檢查碼。完整範例程式位於 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, 來清除擁有表格中的 meta 資料。