Datenbankpflege
Um eine optimale Leistung zu gewährleisten, führen Sie regelmäßige Wartungsaktivitäten für große Tabellen durch, beispielsweise durch ausführen des Befehls RUNSTATS.
Mit dem DB2®-Befehl RUNSTATS werden Statistiken zu den Merkmalen einer Tabelle und/oder eines zugehörigen Indexes oder Statistikansichten im Systemkatalog aktualisiert. Es wird nachdrücklich empfohlen, den DB2®-Befehl RUNSTATS zur Erfassung aktueller Statistiken zu Tabellen und Indizes auszuführen, insbesondere nach einem wichtigen Aktualisierungsvorgang oder wenn neue Indizes (nach der letzten Ausführung des Befehls RUNSTATS) erstellt wurden. Dieser Befehl stellt das Optimierungsprogramm mit den genausten Informationen zur Bestimmung des besten Zugriffsplans bereit.
Beispiel:
runstats on table DB2INST2.UA_CONTACTHISTORY and detailed indexes all
Nehmen Sie als Beispiel eine Tabelle, die zu jedem Zeitpunkt eine hohe Variation des enthaltenen Datenvolumens aufweist. Die Flüchtigkeit oder extreme Wandelbarkeit dieses Tabellentyps führt zu Ungenauigkeiten bei den durch RUNSTATS erfassten Statistiken. Die Statistiken werden zu einem bestimmten Zeitpunkt erfasst und können nur diesen Zeitpunkt widerspiegeln.
Das Generieren eines Zugriffsplans, der eine flüchtige Tabelle verwendet, kann zu einem falschen oder schlecht ausführbaren Plan führen. Wenn die Statistiken beispielsweise zusammengestellt werden, wenn die flüchtige Tabelle leer ist, greift das Optimierungsprogramm eher mit einer Tabellensuche auf die flüchtige Tabelle zu als mit einer Indexsuche.
Um dieses Problem zu vermeiden, sollten Sie die Tabelle mit der Anweisung ALTER TABLE als flüchtig deklarieren. Die Deklarierung als flüchtige Tabelle hat zur Folge, dass das Optimierungsprogramm eher eine Indexsuche anstatt der Tabellensuche verwendet. Zugriffspläne, die eine deklarierte flüchtige Tabelle verwenden, sind nicht auf bestehende Statistiken für diese Tabelle angewiesen.
"ALTER TABLE <table_name> VOLATILE CARDINALITY"