Bei der Optimierung von SQL-Abfragen werden die Entscheidungen, die der SQL-Compiler trifft, wesentlich vom Modell des Optimierungsprogramms über den Inhalt der Datenbank beeinflußt. Dieses Datenmodell dient dem Optimierungsprogramm zur Schätzung des Aufwands alternativer Zugriffspfade, die zur Erfüllung einer bestimmten Abfrage verwendet werden könnten.
Ein Hauptelement in diesem Datenmodell ist die Menge der statistischen Daten, die über die in der Datenbank enthaltenen Daten gesammelt und in den Systemkatalogtabellen gespeichert werden. Dazu gehören Statistiken für Tabellen, Kurznamen, Indizes, Spalten und benutzerdefinierte Funktionen (UDFs). Eine Änderung in den Statistikdaten kann dazu führen, daß ein anderer Zugriffsplan als effizienteste Methode zum Zugriff auf die gewünschten Daten ausgewählt wird.
Die folgenden statistischen Daten sind beispielsweise verfügbar, um das Datenmodell für das Optimierungsprogramm zu definieren:
Statistische Daten für Objekte werden in den Systemkatalogtabellen nur bei expliziter Anforderung aktualisiert. Einige oder alle Statistiken können folgendermaßen aktualisiert werden:
In einem System mit zusammengeschlossenen Datenbanken besteht die einzige Möglichkeit, neue Statistikdaten für Kurznamen aus der Datenquelle zu sammeln, darin, den Kurznamen zu löschen (Drop), das Gegenstück zu RUNSTATS an der Datenquelle auszuführen und anschließend den Kurznamen wieder zu erstellen. Bei jeder Erstellung eines Kurznamens werden Statistikdaten über die zugrundeliegende Tabelle aus dem Katalog der Datenquelle abgerufen.
Sie müssen Kurznamen löschen und erneut erstellen, wenn die Datendefinitionsinformationen in der zugrundeliegenden Tabelle geändert werden. Zum Beispiel, wenn eine Spalte einer Tabellendefinition hinzugefügt wurde.
Darüber hinaus sollten Sie die Neuerstellung des Kurznamens in Betracht ziehen, wenn die Abfrageleistung abnimmt. Eine weitere Methode ist die manuelle Aktualisierung von Statistikdaten im Katalog SYSSTAT.TABLES.
Bei der Erstellung eines Kurznamens für eine Sicht ist Vorsicht geboten. Die statistischen Informationen, wie zum Beispiel die Anzahl von Zeilen, die von diesem Kurznamen zurückgegeben werden, entsprechen möglicherweise nicht dem realen Aufwand zur Auswertung dieser Sicht. Wenn die Sicht auf eine einzelne Basistabelle ohne Anwendung von Spaltenfunktionen in der SELECT-Liste definiert ist, sollten die statistischen Informationen, die dem Optimierungsprogramm zur Verfügung stehen, zutreffen. Ist die Sicht hingegen komplex, sollten Sie die Erstellung neuer Sichten über Kurznamen für die Basistabellen der Sicht auf dem DB2-UDB-Server im System mit zusammengeschlossenen Datenbanken in Betracht ziehen, damit das Optimierungsprogramm einen effizienten Plan für den Zugriff auf die Daten generieren kann.
Zusätzliche Informationen:
Die Kataloge SYSCAT und SYSSTAT enthalten Informationen zu den erfaßten Statistikdaten. Folgende Informationen finden Sie im Handbuch SQL Reference: