ORACLE: Aktualisierung der Datenbank-Statistiken 
Verwendung
Um den Zugriff auf Datenbank-Tabellen zu beschleunigen, wird seit Oracle Release 8.0 der Kostenbasierte Zugriffsoptimierer (Cost Based Optimizer - CBO) eingesetzt. Dieser benutzt Zugriffsstatistiken auf Tabellen, um eine Optimierung bei der Generierung eines Zugriffspfades auszuführen.
Um einen möglichst schnellen Datenbank-Zugriff zu erreichen, ist es erforderlich, die Zugriffsstatistiken stets aktuell zu halten. Die Liste der Tabellen, welche eine Erneuerung ihrer Zugriffsstatistiken benötigen, wird in der SAP-Tabelle DBSTATC vorgehalten. In dieser Tabelle befinden sich initial rund 400 Einträge über Tabellen, die für eine Statistikerneuerung ausgesucht wurden. Aufgrund dieser Tabelleneinträge wird täglich die Zugriffsstatistik der aufgelisteten Tabellen aktualisiert.
Im R/3-System können Sie über die Transaktion
DB21 die Tabelleneinträge von DBSTATC verfolgen.
Sie sollten keine manuellen Änderungen in der Statistikerstellung des DB-Optimierers (Tabelle DBSTATC) vornehmen, ohne diese vorher mit dem SAP-Service-Personal abzusprechen.
Ready-to-Run-Systeme
Am Wochenende findet in Ready-to-Run-Systemen eine Prüfung aller Tabellen in allen SAP-Tablespaces statt: Falls eine Erneuerung der Zugriffsstatistik notwendig ist, wird die entsprechende Tabelle in DBSTATC eingetragen. Tabellen, deren Statistiken bereits hinreichend aktualisiert wurden, werden aus DBSTATC entfernt.
Aus diesem Grund wird in einem Ready-to-Run-R/3-System im DB13-Einplanungskalender von Montag bis Freitag jeweils eine Aktion Check optimizer statistics mit der Option DBSTATC-TAB: All tables in DBSTATC und am Samstag mit Option PSAP%: All SAP tablespaces voreingestellt. Dies bedeutet, daß unter der Woche nur solche Tabellen auf eine Erneuerung ihrer Statistiken überprüft werden, die in der Tabelle DBSTATC eingetragen sind. Am Wochenende werden hingegen alle SAP Tabellen berücksichtigt.
Der anschließende Erneuerungslauf der Optimizer-Statistik wird über Update optimizer statistic mit Option DBSTATCO: All tables marked in DBSTATC durchgeführt.

Alternativ können Sie auch das SAP-Werkzeug SAPDBA verwenden. Der SAPDBA-Menüpunkt DB Optimizer control panel ermöglicht das Anzeigen und die Prüfung des Bedarfs an neuen Statistiken für den DB Optimizer.
Statistiken einer einzelnen Tabelle erneuern
Die Erneuerung der Statistiken einer einzelnen Tabelle (Transaktion
DB20 ) ist dann erforderlich, wenn signifikante Performance-Verschlechterungen eindeutig auf eine einzelne Tabelle zurückzuführen sind oder keine anderen Ursachen (z.B. fehlende Indizes oder ein nicht-performant arbeitendes Programm) vorliegen können.Beim Erstellen einer neuen Zugriffsstatistik wird ein Logfile erzeugt, das folgendermaßen geprüft werden kann:
oder geben Sie den Transaktionscode CBO-Einstellungen
Die Optimizer Modes werden über den
int_<SID>.ora Parameter OPTIMIZER_MODE gesteuert. Ändern Sie den voreingestellten Wert nicht:Der Optimizer wählt zwischen dem kostenbasierten Ansatz (cost-based approach) und dem regelbasierten Ansatz (rule-based approach) aus. Die Entscheidung wird davon beeinflußt, ob für die betroffene Tabelle Statistiken existieren oder nicht. Wenn das data dictonary Statistiken für mindestens eine der Tabellen, auf die zugegriffen wird, enthält, wird der kostenbasierten Ansatz benutzt und somit der Weg des besten Durchsatzes gewählt. Enthält das data dictionary für keine der Tabellen Statistiken, wird regelbasiert vorgegangen , um das Statement aufzulösen. CHOOSE ist der Defaultwert für diesen Parameter.
Der Optimizer arbeitet immer nach dem regelbasierten Ansatz, um SQL-Statements aufzulösen. Dies geschieht unabhängig davon, ob Statistiken existieren oder nicht.
Siehe auch:
SAPDBA: DB Optimizer control
CCMS-Unterstützung für den kostenbasierten Optimierer
SAPDBA-Kommandooptionen
Standard-Operationen für die CBO-Statistiken
Steuertabelle DBSTATC pflegen
Statistiken einer einzelnen Tabelle überprüfen