sp_createstats (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Anropar satsen CREATE STATISTICS för att skapa enkolumnsstatistik på kolumner som inte redan är den första kolumnen i ett statistikobjekt. Att skapa statistik med en kolumn ökar antalet histogram, vilket kan förbättra kardinalitetsuppskattningar, frågeplaner och frågeprestanda. Den första kolumnen i ett statistiskt objekt har ett histogram; Andra kolumner har inget histogram.

sp_createstats är användbar för applikationer som benchmarking när frågeexekveringstiderna är kritiska och jag inte kan vänta på att frågeoptimeraren ska generera enkolumnsstatistik. I de flesta fall är det inte nödvändigt att använda sp_createstats; frågeoptimeraren genererar enkolumnsstatistik vid behov för att förbättra frågeplaner när alternativet AUTO_CREATE_STATISTICS är aktiverat.

Mer information om statistik finns i Statistics. För mer information om generering av enkolumnsstatistik, se AUTO_CREATE_STATISTICS alternativet i ALTER DATABASE SET alternativ.

Transact-SQL syntaxkonventioner

Syntax

sp_createstats
    [ [ @indexonly = ] 'indexonly' ]
    [ , [ @fullscan = ] 'fullscan' ]
    [ , [ @norecompute = ] 'norecompute' ]
    [ , [ @incremental = ] 'incremental' ]
[ ; ]

Arguments

[ @indexonly = ] 'endast index'

Skapar statistik endast på kolumner som finns i ett befintligt index och inte är den första kolumnen i någon indexdefinition. @indexonly är karaktär(9), med en standard på NO.

[ @fullscan = ] 'fullscan'

Använd satsen CREATE STATISTICS med alternativet FULLSCAN . @fullscan är karaktär(9), med en standard på NO.

[ @norecompute = ] 'norecompute'

Använd satsen CREATE STATISTICS med alternativet NORECOMPUTE . @norecompute är tecken(12), med standardvärdet .NO

[ @incremental = ] 'inkrementell'

Använd satsen CREATE STATISTICS med alternativet INCREMENTAL = ON . @incremental är karaktär(12), med en standard på NO.

Returnera kodvärden

0 (lyckades) eller 1 (fel).

Resultatuppsättning

Varje nytt statistikobjekt har samma namn som kolumnen det skapas i.

Anmärkningar

sp_createstats skapar eller uppdaterar inte statistik på kolumner som är den första kolumnen i ett befintligt statistikobjekt. Detta inkluderar den första kolumnen med statistik skapad för index, kolumner med enkolumnsstatistik genererad med AUTO_CREATE_STATISTICS option, och den första kolumnen med statistik skapad med uttalandet CREATE STATISTICS . sp_createstats skapar inte statistik över de första kolumnerna i inaktiverade index om inte den kolumnen används i ett annat aktiverat index. sp_createstats skapar inte statistik på tabeller med ett inaktiverat klustrat index.

När tabellen innehåller en kolumnuppsättning sp_createstats skapar den inte statistik på glesa kolumner. För mer information om kolumnmängder och glesa kolumner, se Använd kolumnmängder och Använd glesa kolumner.

Permissions

Kräver medlemskap i rollen db_owner fast databas.

Examples

A. Skapa enkolumnsstatistik på alla berättigade kolumner

Följande exempel skapar enkolumnsstatistik för alla berättigade kolumner i den aktuella databasen.

EXECUTE sp_createstats;
GO

B. Skapa enkolumnsstatistik på alla berättigade indexkolumner

Följande exempel skapar enkolumnsstatistik för alla berättigade kolumner som redan finns i ett index och inte är den första kolumnen i indexet.

EXECUTE sp_createstats 'indexonly';
GO