UPDATE STATISTICS-Anweisung (update_statistics_statement) 
Die UPDATE STATISTICS-Anweisung (
update_statistics_statement) bestimmt den Platzbedarf von Tabellen und Indizes und die Werteverteilung von Spalten und legt die Informationen im Datenbankkatalog ab.Syntax
<update_statistics_statement> ::=
UPDATE STAT[ISTICS] COLUMN <table_name>.<column_name> [ESTIMATE [<sample_definition>]]
| UPDATE STAT[ISTICS] COLUMN (<column_name>,...) FOR <table_name> [ESTIMATE [<sample_definition>]]
| UPDATE STAT[ISTICS] COLUMN (*) FOR <table_name> [ESTIMATE [<sample_definition>]]
| UPDATE STAT[ISTICS] <table_name> [ESTIMATE [<sample_definition>]]
| UPDATE STAT[ISTICS] [<owner>.][<identifier>]* [ESTIMATE [<sample_definition>]]
Erläuterung
Die Ausführung der UPDATE STATISTICS-Anweisung bewirkt, daß Informationen über die Tabelle wie die Anzahl der Zeilen, Anzahl belegter Seiten, Größe von Indizes, Werteverteilung innerhalb von Spalten oder Indizes usw. im Datenbankkatalog abgelegt werden. Diese Werte werden vom Optimierer zur Bestimmung der besten Strategie zur Ausführung von SQL-Anweisungen benutzt.

Informationen zur Arbeitsweise des Optimierers finden Sie in
Optimierer: SAP DB 7.3.
Die UPDATE STATISTICS-Anweisung führt implizit pro Basistabelle eine
COMMIT-Anweisung aus, d. h. die Transaktion, in der die UPDATE STATISTICS-Anweisung ausgeführt wird, ist anschließend beendet.Bei der Ausführung einer
CREATE INDEX-Anweisung werden für diesen Index und für die Basistabelle, für die der Index definiert wird, die oben genannten Informationen im Katalog abgelegt, nicht jedoch für andere, auf dieser Basistabelle definierte Indizes.Die im Datenbankkatalog abgelegten Statistikwerte können durch Selektieren der Systemtabelle OPTIMIZERSTATISTICS abgefragt werden. Jede Zeile der Tabelle beschreibt Statistikwerte über Indizes, Spalten oder Größe einer Tabelle:
OPTIMIZERSTATISTICS
|
OWNER |
CHAR (32) |
Eigentümer der Tabelle, über die Statistikinformationen vorliegen |
|
TABLENAME |
CHAR (32) |
Tabellenname einer Tabelle, über die Statistikinformationen vorliegen |
|
INDEXNAME |
CHAR (32) |
Indexname eines Index, über den Statistikinformationen vorliegen |
|
COLUMNNAME |
CHAR (32) |
Name einer Spalte, über die Statistikinformationen vorliegen |
|
DISTINCTVALUES |
FIXED (10) |
Anzahl verschiedener Werte, falls die aktuelle Zeile eine Spalte oder einen einspaltigen Index beschreibt; sonst die Anzahl der Zeilen einer Tabelle |
|
PAGECOUNT |
FIXED (10) |
Anzahl der durch einen Index belegten Seiten, falls die aktuelle Zeile einen Index beschreibt; Anzahl der Seiten einer Basistabelle, falls die aktuelle Zeile eine Tabelle beschreibt; NULL sonst |
|
AVGLISTLENGTH |
FIXED (10) |
Durchschnittliche Anzahl von Schlüsseln einer Invertierungsliste, falls die aktuelle Zeile einen Index beschreibt; NULL sonst |
<table_name>
Wenn ein Tabellenname angegeben ist, dann muß die Tabelle eine nicht temporäre Basistabelle sein und der aktuelle Benutzer muß ein Privileg für sie besitzen.
<column_name>
Wenn ein Spaltenname angegeben ist, dann muß die Spalte der angegebenen Tabelle existieren.
Wenn * angegeben ist, werden alle Spalten der Tabelle angenommen.
<identifier>*
Wenn
<identifier>* angegeben ist, dann hat das den gleichen Effekt wie die Angabe der UPDATE STATISTICS-Anweisung für alle Basistabellen, für die der aktuelle Benutzer ein Privileg besitzt und deren Tabellenname mit dem Bezeichner (identifier) beginnt.UPDATE STATISTICS *
Der SYSDBA kann durch UPDATE STATISTICS * erreichen, daß die UPDATE STATISTICS-Anweisung für alle Basistabellen ausgeführt wird, auch wenn dem SYSDBA kein Privileg für die Tabelle vergeben wurde.
ESTIMATE
Siehe auch:
Statistik-Systemtabellen