Anfang des InhaltsbereichsUPDATE STATISTICS-Anweisung (update_statistics_statement) Dokument im Navigationsbaum lokalisieren

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>]]

table_name, column_name, sample_definition, owner, identifier

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.

Hinweis

Informationen zur Arbeitsweise des Optimierers finden Sie in StrukturlinkOptimierer: 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

Ende des Inhaltsbereichs