Achtung, mit diesem Funktionstypwird über eine zum Softwarepaket homogene Benutzerschnittstelle der Aufruf von Betriebssystemprozeduren erleichtert, die Datenbank-Admins vorbehalten sein sollten. Die Funktion sollte daher nur von Administratoren aufgerufen werden (in der Regel als DBAbezeichnet).
Um die Funktion sinnvoll verwenden zu können, muss der Benutzer über Vorkenntnisse über Datenbanken und deren Optimierung verfügen.
Ist dies nicht der Fall, kann die unsachgemäße Funktionsverwendung ernsthafte Performanceprobleme nach sich ziehen und die Sicherheit der Softwareverwendung beeinträchtigen.
Mit dieser Funktion können Datenbankstatistiken generiert werden.
Die Anzeige erfolgt in zwei Registern: Der ersten Liste sind die Indizes und ihr jeweiliger Statistikstatus zu entnehmen, der zweiten die Liste der Datenbankparameter, die mit der Generierung von Statistiken verbunden sind.
Übersicht
Eigenschaften der verwendeten Datenbank.
Schließen
Felder
In diesem Register befinden sich die folgenden Felder :
| Datenbankname |
| Versionsnummer der Datenbank |
| Beschreibung der Datenbankversion |
Schließen
Übersicht
In diesem Register wird die Liste der Indizes mit ihrem jeweiligen Statistikstatus angezeigt.
Schließen
Felder
In diesem Register befinden sich die folgenden Felder :
| Ermöglicht die Definition, ob die Zeile beim Erzeugen der Statistiken über den entsprechenden Button am Maskenende verarbeitet werden muss. |
| Name der Tabelle in der Datenbank |
| Indexname in der Datenbank |
| Anzahl der dem Index entsprechenden Tabellenzeilen (count) |
| Gibt an, ob die Statistiken für den Index automatisch erzeugt werden. Entspricht dem Parameter Datenbank automatische UPDATE STATISTICS für den Index. |
| Gibt an, ob die gültigen Statistiken in der Datenbank erzeugt werden. |
| Datum der letzten Statistikanalyse. |
| Uhrzeit der letzten Statistikanalyse. |
Schließen
Die Statistiken können generiert und gelöscht werden:
Symbol Aktionen
In Erfassungstabellen mit einer Auswahlmöglichkeit Ja / Nein pro Position können mit der Antwort Alle anderen: ja alle Positionen ab der aktuellen Position auf Ja gesetzt werden.
In Erfassungstabellen mit einer Auswahlmöglichkeit Ja / Nein pro Position können mit der Antwort Alle anderen: nein alle Positionen ab der aktuellen Position auf Nein gesetzt werden.
Aktualisierung der Anzeige der aktuellen Tabellenzeile
Statistikgenerierung für die aktuelle Tabellenzeile
Schließen
Übersicht
Dieses Register umfasst die Liste der mit der automatischen Statistikgenerierung verbundenen Datenbankparameter
Schließen
Felder
In diesem Register befinden sich die folgenden Felder :
Tabelle Auswertungsparameter
| Zeigt die Optionen an, die in der Datenbank für die automatische Statistikerzeugung positioniert sind. Hierbei gibt es die folgenden Optionen:
|
|   |
Schließen
Diese Werte können nicht geändert werden.
Mit diesem auch über das Tastaturkürzelerreichbaren Button wird die Registeranzeige aktualisiert. |
Generierung der Statistiken für die selektierten Zeilen in der Tabelle des Registers Index. |
SQL Server behält die Statistiken über die Verteilung der Schlüsselwerte für jeden Index und verwendet diese Statistiken zur Ermittlung der in der Abfrageverarbeitung zu verwendenden Indizes.
Die Aktualisierung der Statistiken wird daher in folgenden Fällen empfohlen:
Mit Microsoft® SQL Server™ können statistische Daten über die Werteverteilung in einer anzulegenden Tabelle erstellt werden. Diese Statistiken können von der Abfragemaschine zur Bestimmung der optimalen Auswertungsstrategie für eine Abfrage verwendet werden. Bei Anlage eines Index speichert SQL Server automatisch die statistischen Daten zur Werteverteilung in der oder den indizierten Spalten. Der Abfrage-Optimizer von SQL Server greift auf diese Statistiken zurück, um die Kosten der Indexverwendung im Rahmen einer Abfrage zu schätzen. Ist die Datenbankoption AUTO_CREATE_STATISTICS aktiviert (ON), was standardmäßig der Fall ist, legt SQL Server automatisch Statistiken für die Spalten ohne Indizes an, die in einem Prädikat verwendet werden.
Ändern sich in einer Spalte die Daten, werden die Index- und Spaltenstatistiken möglicherweise hinfällig; der Abfrage-Optimizer kann dann in Bezug auf die Abfrageverarbeitung keine optimale Entscheidung treffen. Beispiel: Anlage einer Tabelle mit einer indizierten Spalte und 1.000 Zeilen. Jede Zeile weist in der indizierten Spalte einen eindeutigen Wert auf. In diesem Fall betrachtet der Abfrage-Optimizer die indizierte Spalte als "gute" Lösung zur Datensammlung für eine Abfrage. Werden die Daten einer Spalte durch Anlage zahlreicher redundanter Werte verändert, ist diese Spalte kein idealer Kandidat mehr für die Verwendung in einer Abfrage. Der Optimizer betrachtet die Spalte aber immer noch als geeigneten Kandidaten, da sich die Verteilungsstatistik ja noch auf die Daten vor der Aktualisierung bezieht. Dass die Statistik mittlerweile hinfällig ist, ist ihm unbekannt.
Daher aktualisiert SQL Server die Statistikdaten regelmäßig automatisch, wenn Tabellendaten geändert wurden. Die Stichproben werden dabei zufällig aus den Datenseiten gebildet und stammen aus der Tabelle oder aus dem kleinsten, nicht in Clustern organisierten Index auf die für die Statistiken notwendigen Tabellen. Nach dem Lesen einer Datenseite von der Platte, werden für die Aktualisierung der Statistikdaten sämtliche Zeilen der Seite verwendet. Das Aktualisierungsintervall für die Statistikdaten richtet sich nach dem in der Spalte oder im Index vorhandenen Datenvolumen und nach der Menge der variablen Daten.
SQL Server garantiert die Auswahl einer Mindestanzahl von Zeilen. Tabellen, die kleiner als 8 MB sind, werden bei der Erstellung von Statistiken stets vollständig analysiert.
Die Kosten der automatischen Statistikaktualisierung werden durch die Datenstichproben minimiert; durch die Stichproben müssen nicht alle Daten analysiert werden.
Sämtliche Tabellen-, Index- und Statistikdaten werden aus SQL-Server-Tabellen und -Views direkt aus der Datenbank gelesen:
Die Statistikdaten werden mit der Funktion STATS_DATE gewonnen.
Die Daten über die automatische Statistikgenerierung zu den Indizes werden mithilfe der Prozedur sp_autostats gewonnen.
Die Daten über die automatische Statistikverwaltung in der Datenbank werden mithilfe der Prozedur sp_dboption gewonnen.
Die Statistiken werden mithilfe der Anweisung UPDATE STATISTICS aktualisiert.