Megosztás a következőn keresztül:


sp_createstats (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

A CREATE STATISTICS utasítást hívja, hogy egyoszlopos statisztikákat hozzon létre olyan oszlopokon, amelyek még nem az első oszlopok egy statisztikai objektumban. Az egyoszlopos statisztikák létrehozása növeli a hisztográfia számát, ami javíthatja a kardinalitás-becsléseket, lekérdezési terveket és a lekérdezési teljesítményt. Egy statisztikai objektum első oszlopa hisztogramot tartalmaz; Más oszlopoknak nincs histogramja.

sp_createstats hasznos olyan alkalmazásokhoz, mint a benchmarking, amikor a lekérdezések végrehajtási ideje kritikus, és nem várhatják, hogy a lekérdezésoptimalizáló egyoszlopos statisztikákat generáljon. A legtöbb esetben nem szükséges sp_createstatshasználni ; a lekérdezésoptimalizáló szükség esetén egyoszlopos statisztikákat generál a lekérdezési tervek javítására, amikor az AUTO_CREATE_STATISTICS opció be van kapcsolva.

További információ a statisztikákról: Statistics. További információért az egyoszlopos statisztikák generálásáról lásd AUTO_CREATE_STATISTICS a ALTER DATABASE SET opciók opcióját.

Transact-SQL szintaxis konvenciók

Szemantika

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

Arguments

[ @indexonly = ] 'csak index'

Csak olyan oszlopokra hoz létre statisztikákat, amelyek egy meglévő indexben vannak, és nem az első oszlopok egyetlen indexdefinícióban. @indexonlychar(9), alapértelmezett értéke NO.

[ @fullscan = ] 'teljes szkennelés'

Használja a CREATE STATISTICS utasítást a FULLSCAN választható opcióval. @fullscanchar(9), alapértelmezés NOszerint .

[ @norecompute = ] 'norecompute'

Használja a CREATE STATISTICS utasítást a NORECOMPUTE választható opcióval. @norecompute char (12), alapértelmezett NOérték .

[ @incremental = ] 'fokozatos'

Használja a CREATE STATISTICS utasítást a INCREMENTAL = ON választható opcióval. @incrementalchar(12), alapértelmezés NOszerint .

Kódértékek visszaadása

0 (sikeres) vagy 1 (hiba).

Eredményhalmaz

Minden új statisztikai objektumnak ugyanaz a neve van, mint az oszlop, amelyen létrehozták.

Megjegyzések

sp_createstats Nem hoz létre vagy frissíti statisztikákat azokon az oszlopokon, amelyek egy meglévő statisztikai objektum első oszlopa. Ez magában foglalja az indexekhez létrehozott első statisztikai oszlopot, az opcióval generált egyoszlopos statisztikákat AUTO_CREATE_STATISTICS és az állítással létrehozott statisztikákat tartalmazó oszlopokat, valamint az állítással létrehozott statisztikák CREATE STATISTICS első oszlopát. sp_createstats nem hoz létre statisztikát a letiltott indexek első oszlopaiban, hacsak azt az oszlopot nem használják egy másik engedélyezett indexben. sp_createstats nem hoz létre statisztikákat olyan táblákon, ahol letiltott klaszteres index.

Ha a táblázat oszlophalmazt tartalmaz, sp_createstats nem hoz létre statisztikákat ritka oszlopokon. További információért az oszlophalmazokról és a ritka oszlopokról lásd: Használj oszlophalmazokat és Használj ritka oszlopokat.

Permissions

Tagság szükséges db_owner fix adatbázis szerepében.

Példák

A. Készíts egyoszlopos statisztikákat az összes jogosult oszlopról

A következő példa egyetlen oszlopos statisztikákat hoz létre az aktuális adatbázis összes jogosult oszlopán.

EXECUTE sp_createstats;
GO

B. Készíts egyoszlopos statisztikákat az összes jogosult indexoszlopon

A következő példa egyoszlopos statisztikákat hoz létre minden jogosult oszlopról, amely már az indexben van, és nem az első oszlop az indexben.

EXECUTE sp_createstats 'indexonly';
GO