Erstellen von Statistiken
Gilt für: SQL Server 2022 (16.x) Azure SQL-Datenbank Azure SQL Managed Instance
Sie können die Abfrageoptimierungsstatistiken einer oder mehrerer Spalten einer Tabelle oder einer indizierten Sicht in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL erstellen. Bei den meisten Abfragen generiert der Abfrageoptimierer automatisch die notwendigen Statistiken für einen hochwertigen Abfrageplan. In einigen Fällen müssen Sie weitere Statistiken erstellen.
Einschränkungen
Vergewissern Sie sich vor dem Erstellen von Statistiken mit der CREATE STATISTICS-Anweisung, dass auf Datenbankebene die AUTO_CREATE_STATISTICS-Option festgelegt ist. Dadurch wird sichergestellt, dass der Abfrageoptimierer weiterhin routinemäßig einspaltige Statistiken für Abfrageprädikatsspalten erstellt.
Sie können bis zu 32 Spalten pro Statistikobjekt auflisten.
Sie können die Definition einer in einem Prädikat der gefilterten Statistik definierten Tabellenspalte nicht löschen, umbenennen oder ändern.
Berechtigungen
Erfordert, dass der Benutzer der Besitzer der Tabelle oder indizierten Sicht oder ein Mitglied einer der folgenden Rollen ist: feste Serverrolle sysadmin , feste Datenbankrolle db_owner oder feste Datenbankrolle db_ddladmin .
Verwenden von SQL Server Management Studio
Wählen Sie im Objekt-Explorer das Pluszeichen aus, um die Datenbank zu erweitern, in der Sie eine neue Statistik erstellen möchten.
Klicken Sie auf das Pluszeichen, um den Ordner Tabellen zu erweitern.
Wählen Sie das Pluszeichen aus, um die Tabelle zu erweitern, in der Sie eine neue Statistik erstellen möchten.
Klicken Sie mit der rechten Maustaste auf den Ordner Statistik, und wählen Sie dann New Statistics... (Neue Statistiken…).
Die folgenden Eigenschaften werden auf der Seite Allgemein im Dialogfeld Neue Statistik für Tabelle table_name angezeigt.
Eigenschaft Beschreibung Tabellenname Zeigt den Namen der Tabelle an, die von den Statistiken beschrieben wird. Statistikname Zeigt den Namen des Datenbankobjekts an, in dem die Statistiken gespeichert sind. Statistikspalten Dieses Raster zeigt die von dieser Gruppe von Statistiken beschriebenen Spalten an. Alle Werte im Raster sind schreibgeschützt. Name Zeigt den Namen der Spalte an, die von den Statistiken beschrieben wird. Dabei kann es sich um eine einzelne Spalte oder eine Kombination aus Spalten in einer einzelnen Tabelle handeln. Datentyp Gibt den Datentyp der von den Statistiken beschriebenen Spalten an. Größe Zeigt jeweils die Größe des Datentyps für die einzelnen Spalten an. Identität Gibt eine Identitätsspalte an, wenn diese Option aktiviert ist. NULL-Werte zulassen Gibt an, ob die Spalte NULL-Werte annimmt. Add (Hinzufügen) Fügt dem Statistikraster zusätzliche Spalten aus der Tabelle hinzu. Remove Entfernt die ausgewählte Spalte aus dem Statistikraster. Nach oben Verschiebt die ausgewählte Spalte an eine frühere Position im Statistikraster. Die Position im Raster kann in erheblichem Maß die Eignung der Statistiken beeinflussen. Nach unten Verschiebt die ausgewählte Spalte an eine spätere Position im Statistikraster. Die Statistiken für diese Spalten wurden zuletzt aktualisiert Gibt das Alter von Statistiken an. Statistiken sind wertvoller, wenn Sie aktuell sind. Aktualisieren Sie Statistiken nach umfangreichen Änderungen an den Daten bzw. nach Hinzufügen atypischer Daten. Statistiken für Tabellen mit konsistenter Verteilung der Daten müssen seltener aktualisiert werden. Statistiken für diese Spalten aktualisieren Aktivieren Sie diese Option, wenn die Statistiken beim Schließen des Dialogfelds aktualisiert werden sollen. Die folgende Eigenschaft wird auf der Seite Filter im Dialogfeld Neue Statistik für Tabelle table_name angezeigt.
Eigenschaft Beschreibung Filterausdruck Definiert, welche Datenzeilen in die gefilterte Statistik eingeschlossen werden sollen. Beispiel: Production.ProductSubcategoryID IN ( 1, 2, 3 )
Wählen Sie im Dialogfeld Neue Statistik für Tabelle table_name auf der Seite Allgemein die Option Hinzufügen aus.
Die folgenden Eigenschaften werden im Dialogfeld Spalten auswählen angezeigt. Diese Informationen sind schreibgeschützt.
Eigenschaft Beschreibung Name Zeigt den Namen der Spalte an, die von den Statistiken beschrieben wird. Dabei kann es sich um eine einzelne Spalte oder eine Kombination aus Spalten in einer einzelnen Tabelle handeln. Datentyp Gibt den Datentyp der von den Statistiken beschriebenen Spalten an. Größe Zeigt jeweils die Größe des Datentyps für die einzelnen Spalten an. Identität Gibt eine Identitätsspalte an, wenn diese Option aktiviert ist. NULL-Werte zulassen Gibt an, ob die Spalte NULL-Werte annimmt. Aktivieren Sie im Dialogfeld Spalten auswählen die Kontrollkästchen der einzelnen Spalten, für die Sie eine Statistik erstellen möchten, und wählen Sie anschließend OK aus.
Wählen Sie im Dialogfeld Neue Statistik für Tabelle table_name die Option OK aus.
Verwenden von Transact-SQL
Stellen Sie im Objekt-Explorer eine Verbindung mit einer Datenbank-Engine-Instanz her.
Klicken Sie in der Standardleiste auf Neue Abfrage.
Kopieren Sie das folgende Beispiel in das Abfragefenster, und klicken Sie dann auf Ausführen.
USE AdventureWorks2022; GO -- Create new statistic object called ContactMail1 -- on the BusinessEntityID and EmailPromotion columns in the Person.Person table. CREATE STATISTICS ContactMail1 ON Person.Person (BusinessEntityID, EmailPromotion); GO
Die oben erstellte Statistik kann zu einer Verbesserung der Ergebnisse für die folgende Abfrage führen.
USE AdventureWorks2022; GO SELECT LastName, FirstName FROM Person.Person WHERE EmailPromotion = 2 ORDER BY LastName, FirstName; GO