Delen via


Create statistics

Van toepassing op: SQL Server 2022 (16.x) en latere versies Van Azure SQL DatabaseAzure SQL Managed InstanceSQL Database in Microsoft Fabric Preview

U kunt queryoptimalisatiestatistieken maken voor een of meer kolommen van een tabel of geïndexeerde weergave in SQL Server met behulp van SQL Server Management Studio of Transact-SQL. Voor de meeste query's genereert de queryoptimalisatie al de benodigde statistieken voor een queryplan van hoge kwaliteit; in enkele gevallen moet u aanvullende statistieken maken.

Beperkingen en beperkingen

Controleer voordat u statistieken maakt met de instructie CREATE STATISTICS of de optie AUTO_CREATE_STATISTICS is ingesteld op databaseniveau. Dit zorgt ervoor dat de queryoptimalisatieroutine regelmatig statistieken met één kolom maakt voor querypredicaatkolommen.

U kunt maximaal 32 kolommen per statistiekenobject weergeven.

U kunt de definitie van een tabelkolom die is vastgelegd in een gefilterd statistiekpredicaat niet verwijderen, hernoemen of wijzigen.

Permissions

Vereist dat de gebruiker de eigenaar van de tabel of geïndexeerde weergave is of lid is van een van de volgende rollen: sysadmin vaste serverfunctie, db_owner vaste databaserol of de db_ddladmin vaste databaserol.

SQL Server Management Studio gebruiken

  1. Selecteer in Objectverkennerhet plusteken om de database uit te vouwen waarin u een nieuwe statistiek wilt maken.

  2. Selecteer het plusteken om de map Tabellen uit te vouwen.

  3. Selecteer het plusteken om de tabel uit te vouwen waarin u een nieuwe statistiek wilt maken.

  4. Klik met de rechtermuisknop op de map Statistics en selecteer Nieuwe statistieken....

    De volgende eigenschappen worden weergegeven op de pagina Algemeen in het dialoogvenster Nieuwe statistieken in tabeltable_name.

    Property Description
    Table Name Geeft de naam weer van de tabel die wordt beschreven door de statistieken.
    Statistics Name Geeft de naam weer van het databaseobject waarin de statistieken worden opgeslagen.
    Statistics Columns In dit raster worden de kolommen weergegeven die door deze set statistieken worden beschreven. Alle waarden in het raster hebben het kenmerk Alleen-lezen.
    Name Geeft de naam weer van de kolom die wordt beschreven door de statistieken. Dit kan één kolom of een combinatie van kolommen in één tabel zijn.
    Data Type Geeft het gegevenstype aan van de kolommen die door de statistieken worden beschreven.
    Size Geeft de grootte van het gegevenstype voor elke kolom weer.
    Identity Geeft een identiteitskolom aan wanneer deze wordt gecontroleerd.
    Allow NULLs Geeft aan of de kolom NULL-waarden accepteert.
    Add Voeg meer kolommen uit de tabel toe aan het statistiekenraster.
    Remove Verwijder de geselecteerde kolom uit het statistiekenraster.
    Move Up Verplaats de geselecteerde kolom naar een eerdere locatie in het statistiekenraster. De locatie in het raster kan de bruikbaarheid van de statistieken aanzienlijk beïnvloeden.
    Move Down Verplaats de geselecteerde kolom naar een latere locatie in het statistiekenraster.
    Statistieken voor deze kolommen zijn voor het laatst bijgewerkt Geeft aan hoe oud de statistieken zijn. Statistieken zijn waardevoller wanneer ze actueel zijn. Werk statistieken bij na grote wijzigingen in de gegevens of na het toevoegen van atypische gegevens. Statistieken voor tabellen met een consistente verdeling van gegevens moeten minder vaak worden bijgewerkt.
    Statistieken bijwerken voor deze kolommen Controleer of u de statistieken wilt bijwerken wanneer het dialoogvenster is gesloten.

    De volgende eigenschap wordt weergegeven op de pagina Filter in het dialoogvenster Nieuwe statistieken in tabeltable_name.

    Property Description
    Filter Expression Hiermee definieert u welke gegevensrijen moeten worden opgenomen in de gefilterde statistieken. Bijvoorbeeld Production.ProductSubcategoryID IN ( 1, 2, 3 )
  5. Selecteer in het dialoogvenster Nieuwe statistieken voor tabeltable_name op de pagina Algemeen de optie Toevoegen.

    De volgende eigenschappen worden weergegeven in het dialoogvenster Kolommen selecteren. Deze informatie kan alleen gelezen worden.

    Property Description
    Name Geeft de naam weer van de kolom die wordt beschreven door de statistieken. Dit kan één kolom of een combinatie van kolommen in één tabel zijn.
    Data Type Geeft het gegevenstype aan van de kolommen die door de statistieken worden beschreven.
    Size Geeft de grootte van het gegevenstype voor elke kolom weer.
    Identity Geeft een identiteitskolom aan wanneer deze is ingeschakeld.
    Allow NULLs Geeft aan of de kolom NULL-waarden accepteert.
  6. Schakel in het dialoogvenster Kolommen selecteren het selectievakje of selectievakjes in van elke kolom waarvoor u een statistiek wilt maken en selecteer vervolgens OK-.

  7. Selecteer in het dialoogvenster Nieuwe statistieken in tabeltable_nameOK-.

Use Transact-SQL

  1. Maak in Objectverkennerverbinding met een exemplaar van Database Engine.

  2. Op de standaardbalk selecteer je Nieuwe query.

  3. Kopieer en plak het volgende voorbeeld in het queryvenster en selecteer uitvoeren.

    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. De statistiek die hierboven is gemaakt, verbetert mogelijk de resultaten voor de volgende query.

    USE AdventureWorks2022;
    GO
    SELECT LastName, FirstName
    FROM Person.Person
    WHERE EmailPromotion = 2
    ORDER BY LastName, FirstName;
    GO
    

Next steps