Bei der Arbeit mit den DB2 Extendern können sich veraltete Einträge in den Tabellen zur Verwaltungsunterstützung sammeln. Beispielsweise löscht ein Benutzer eine Multimediadatei, aber nicht den entsprechenden Verweis in der Datenbank. Durch das Löschen von veralteten Metadaten kann die Leistung verbessert und Speicherbereich zurückgefordert werden.
Verwendung der API: Der Beispielcode in dem folgenden Beispiel bereinigt die Abbildmetadaten für alle Benutzertabellen, deren Eigner ANITAS ist. Er enthält unter anderem Fehlerprüfcode. Das vollständige Beispielprogramm befindet sich in der Datei API.C im Unterverzeichnis SAMPLES.
Abbildung 16. Beispielcode, der Tabellen zur Verwaltungsunterstützung bereinigt
/*---- 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 ----*/ |
Verwendung der db2ext-Befehlszeile:
reorg database user anitas for db2image
Wenn Sie keine DBA-Berechtigung, aber Steuerberechtigung haben, können Sie die APIs DBxReorgMetadata oder den Befehl REORG verwenden, um Metadaten für Ihre eigenen Tabellen zu bereinigen.