Erstellen von Statistiken

Gilt für: SQL Server 2022 (16.x) Azure SQL-DatenbankAzure 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.

Beschränkungen und 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 Tabellenspalte, die in einem gefilterten Statistik-Prädikat definiert ist, nicht ablegen, 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 Sie SQL Server Management Studio

  1. Wählen Sie im Objekt-Explorer das Pluszeichen aus, um die Datenbank zu erweitern, in der Sie eine neue Statistik erstellen möchten.

  2. Klicken Sie auf das Pluszeichen, um den Ordner Tabellen zu erweitern.

  3. Wählen Sie das Pluszeichen aus, um die Tabelle zu erweitern, in der Sie eine neue Statistik erstellen möchten.

  4. 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 Tabelletable_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ügen Sie dem Statistikraster weitere Spalten aus der Tabelle hinzu.
    Löschen 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 sich erheblich auf die Nützlichkeit der Statistiken auswirken.
    Nach unten Verschiebt die ausgewählte Spalte an eine spätere Position im Statistikraster.
    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 Tabelletable_name angezeigt.

    Eigenschaft Beschreibung
    Filterausdruck Definiert, welche Datenzeilen in die gefilterte Statistik eingeschlossen werden sollen. Beispiel: Production.ProductSubcategoryID IN ( 1, 2, 3 )
  5. Wählen Sie im Dialogfeld "Neue Statistik in Tabelletable_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.
  6. Aktivieren Sie im Dialogfeld "Spalten auswählen" das Kontrollkästchen oder Kontrollkästchen jeder Spalte, für die Sie eine Statistik erstellen möchten, und wählen Sie dann "OK" aus.

  7. Wählen Sie im Dialogfeld "Neue Statistiken für Tabelletable_name" "OK" aus.

Verwenden von Transact-SQL

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Datenbank-Engine-Instanz her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. 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
    
  4. 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
    

Nächste Schritte