Entwicklung > Tools > Prüfungen > Statistiken > SQL-Server-Auswertungen 

Mit dieser Funktion können bei SQL-Server™-Datenbanken die wichtigsten generierten Statistiken angezeigt werden.

Darüber hinaus können Statistiken aktualisiert werden.

Wichtiger Hinweis:

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.

Maskenverwaltung

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.

Kopfzeile

Übersicht

Eigenschaften der verwendeten Datenbank.

Schließen

 

Felder

In diesem Register befinden sich die folgenden Felder :

  • Datenbank (Feld BDDNAM)

Datenbankname

  • Version (Feld VER)

Versionsnummer der Datenbank

  • Feld VERDES

Beschreibung der Datenbankversion

Schließen

 

Register Index

Ü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 :

Tabelle

  • Zu bearbeiten (Feld PROFLG)

Ermöglicht die Definition, ob die Zeile beim Erzeugen der Statistiken über den entsprechenden Button am Maskenende verarbeitet werden muss.

  • Tabelle (Feld TAB)

Name der Tabelle in der Datenbank

  • Index (Feld INDEX)

Indexname in der Datenbank

  • Zeilen (Feld NBRLIN)

Anzahl der dem Index entsprechenden Tabellenzeilen (count)

  • Automatisch (Feld STTAUT)

Gibt an, ob die Statistiken für den Index automatisch erzeugt werden.

Entspricht dem Parameter Datenbank automatische UPDATE STATISTICS für den Index.

  • Generiert (Feld STTFLG)

Gibt an, ob die gültigen Statistiken in der Datenbank erzeugt werden.

  • Letzte Auswertung am (Feld STTDAT)

Datum der letzten Statistikanalyse.

  • Feld STTHOU

Uhrzeit der letzten Statistikanalyse.

Schließen

 

Die Statistiken können generiert und gelöscht werden:

    • per Rechtsklick für einen Index
    • per Auswahl der gewünschten Zeilen und Klick auf den Button im unteren Maskenbereich für alle oder einen Teil der Indizes

Symbol Aktionen

Alle anderen: ja

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.

Alle anderen: nein

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 Zeile

Aktualisierung der Anzeige der aktuellen Tabellenzeile

Generierung für die Zeile

Statistikgenerierung für die aktuelle Tabellenzeile

 

Schließen

 

Register Datenbank

Ü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

  • Parameter (Feld PAR)

Zeigt die Optionen an, die in der Datenbank für die automatische Statistikerzeugung positioniert sind.

Hierbei gibt es die folgenden Optionen:

Option

Beschreibung

auto create statistics

Wenn richtig, werden die fehlenden Statistiken, die zur Optimierung von einer Abfrage angefordert werden, während der Optimierung automatisch erstellt.

auto update statistics

Wenn richtig, werden die nicht aktualisierten Statistiken, die zur Optimierung von einer Abfrage angefordert werden, während der Optimierung automatisch erstellt.

  • Wert (Feld PARVAL)

 

Schließen

 

Diese Werte können nicht geändert werden.

Spezielle Buttons

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.

Erläuterungen zu den SQL-Server-Statistiken

Wann müssen die Auswertungen aktualisiert werden?

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:

    • Die Schlüsselwerte des Index wurden signifikant geändert
    • Ein Großteil der Daten einer indizierten Spalte wurde hinzugefügt, geändert oder gelöscht (d. h. die Verteilung der Schlüsselwerte könnte sich geändert haben)

Weshalb?

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.

Technische Daten

Sämtliche Tabellen-, Index- und Statistikdaten werden aus SQL-Server-Tabellen und -Views direkt aus der Datenbank gelesen:

    • sysusers
    • sysobjects
    • sysindexes

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.

Fehlermeldungen

Nur generische Fehlermeldungen.

Verwendete Tabellen

SEEREFERTTO Siehe Dokumentation Umsetzung