Statistiken
Statistiken helfen dem Optimierer, für einen Abfrage einen möglichst günstigen Ausführungsplan zu erstellen. Über Statistiken kann der Optimierer beispielsweise ermitteln, ob ein Index Seek oder ggf. doch ein reiner Table Scan für die vorliegende Abfrage geeigneter ist. Hierzu ist es erforderlich, dass die Statistiken aktuell sind und den zugrundeliegenden Datenbestand korrekt repräsentieren.
Wann werden Statistiken erstellt
Es gibt mehrere Möglichkeiten, wie Statistiken im SQL Server erstellt werden.
Automatisch erstellte Statistiken
Sollte es beim Erstellen eines Ausführungsplans für das benötige Feld in der Tabelle noch keine Statistik vorhanden sein, wird vom Optimierer eine entsprechende Statistik vor Erstellen des Ausführungsplans erstellt. Dies kann ggf. bei der ersten Ausführung der Abfrage zu Verzögerungen führen, da das Erstellen der Statistik dann die meiste Zeit in Anspruch nimmt.
Der Optimierer kann immer nur Statistiken für ein Feld erstellen. Werden mehrere Felder in der WHERE-Klausel einer Abfrage verwendet, erstellt der Optimierer je eine Statistik für jedes Feld, für das eine Statistik fehlt. Dies kann auch zu Performanceeinbußen führen.
Wird ein Index angelegt, wird gleichzeitig auch eine gleichnamige Statistik zu dem Index angelegt. Im Gegensatz zu der o.g. Vorgehensweise liegt hier der Vorteil darin, dass für die Erstellung der Statistik alle Daten der Tabelle berücksichtigt werden, da diese eh für die Erstellung des Index gelesen werden müssen. Diese so erstellten Statistiken sind somit deutlich genauer als die vom Optimierer automatisch erstellten Statistiken.
Hinweis:
Wenn in einem Wartungsplan die Indizes neu erstellt werden, dann sollte danach KEINE Aktualisierung der Statistiken mehr erfolgen.
Manuell erstellte Statistiken
sdf