Dela via


Skapa statistik

gäller för: SQL Server 2022 (16.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Du kan skapa frågeoptimeringsstatistik för en eller flera kolumner i en tabell eller indexerad vy i SQL Server med hjälp av SQL Server Management Studio eller Transact-SQL. För de flesta frågor genererar frågeoptimeraren redan nödvändig statistik för en frågeplan av hög kvalitet. i några fall måste du skapa ytterligare statistik.

Begränsningar och restriktioner

Innan du skapar statistik med instruktionen CREATE STATISTICS kontrollerar du att alternativet AUTO_CREATE_STATISTICS har angetts på databasnivå. Detta säkerställer att frågeoptimeraren fortsätter att rutinmässigt skapa statistik med en kolumn för frågepredikatkolumner.

Du kan visa upp till 32 kolumner per statistikobjekt.

Du kan inte släppa, byta namn på eller ändra definitionen för en tabellkolumn som definieras i ett filtrerat statistikpredikat.

Behörigheter

Kräver att användaren är tabell- eller indexerad vyägare eller medlem i någon av följande roller: sysadmin fast serverroll, db_owner fast databasroll eller db_ddladmin fast databasroll.

Använda SQL Server Management Studio

  1. I Object Explorerväljer du plustecknet för att expandera databasen där du vill skapa en ny statistik.

  2. Välj plustecknet för att expandera mappen Tables.

  3. Välj plustecknet för att expandera tabellen där du vill skapa en ny statistik.

  4. Högerklicka på mappen Statistics och välj Ny statistik....

    Följande egenskaper visas på sidan Allmänt i dialogrutan Ny statistik på tabelltable_name.

    Egenskap Beskrivning
    Tabellnamn Visar namnet på tabellen som beskrivs i statistiken.
    Statistiknamn Visar namnet på databasobjektet där statistiken lagras.
    statistikkolumner Det här rutnätet visar de kolumner som beskrivs i den här uppsättningen statistik. Alla värden i rutnätet är skrivskyddade.
    namn Visar namnet på kolumnen som beskrivs i statistiken. Detta kan vara en enskild kolumn eller en kombination av kolumner i en enda tabell.
    datatyp Anger datatypen för kolumnerna som beskrivs i statistiken.
    Storlek Visar storleken på datatypen för varje kolumn.
    identitet Visar en identitetskolumn när den är markerad som sådan.
    Tillåt NULL- Anger om kolumnen accepterar NULL-värden.
    Lägg till Lägg till fler kolumner från tabellen i statistiköversikten.
    Ta bort Ta bort den markerade kolumnen från statistikrutnätet.
    Flytta upp Flytta den markerade kolumnen till en tidigare plats i statistikrutnätet. Platsen i rutnätet kan avsevärt påverka statistikens användbarhet.
    Flytta ned Flytta den markerade kolumnen till en senare plats i statistikrutnätet.
    Statistik för dessa kolumner uppdaterades senast Anger hur gammal statistiken är. Statistik är mer värdefull när de är aktuella. Uppdatera statistik efter stora ändringar i data eller efter att du har lagt till atypiska data. Statistik för tabeller som har en konsekvent fördelning av data måste uppdateras mindre ofta.
    Uppdatera statistik för dessa kolumner Markera om du vill uppdatera statistiken när dialogrutan stängs.

    Följande egenskap visas på sidan Filtrera i dialogrutan Ny statistik i tabelltable_name.

    Egenskap Beskrivning
    Filteruttryck Definierar vilka datarader som ska inkluderas i den filtrerade statistiken. Till exempel Production.ProductSubcategoryID IN ( 1, 2, 3 )
  5. I dialogrutan Ny statistik i tabelltable_name väljer du Lägg tillpå sidan Allmänt .

    Följande egenskaper visas i dialogrutan Välj kolumner. Den här informationen är skrivskyddad.

    Egenskap Beskrivning
    Namn Visar namnet på kolumnen som beskrivs i statistiken. Detta kan vara en enskild kolumn eller en kombination av kolumner i en enda tabell.
    datatyp Anger datatypen för kolumnerna som beskrivs i statistiken.
    Storlek Visar storleken på datatypen för varje kolumn.
    identitet Indikerar en identitetskolumn när den är markerad.
    Tillåt NULL- Anger om kolumnen accepterar NULL-värden.
  6. I dialogrutan Välj kolumner markerar du kryssrutan eller kryssrutorna för varje kolumn som du vill skapa en statistik för och väljer sedan OK.

  7. I dialogrutan Ny statistik i tabelltable_name väljer du OK.

Använd Transact-SQL

  1. I Object Exploreransluter du till en instans av databasmotorn.

  2. I standardfältet väljer du Ny fråga.

  3. Kopiera och klistra in följande exempel i frågefönstret och välj Kör.

    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. Den statistik som skapats ovan kan förbättra resultatet för följande fråga.

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

Nästa steg