Sdílet prostřednictvím


sp_createstats (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Volá příkaz CREATE STATISTICS k vytvoření jednosloupcových statistik ve sloupcích, které nejsou již prvním sloupcem v objektu statistiky. Vytváření statistik v jednom sloupci zvyšuje počet histogramů, což může zlepšit odhady kardinálnosti, plány dotazů a výkon dotazů. První sloupec objektu statistiky má histogram; Jiné sloupce nemají histogram.

sp_createstats je užitečný pro aplikace jako benchmarking, když jsou časy provádění dotazu kritické a nemohou čekat, až optimalizátor dotazu vygeneruje statistiky v jednom sloupci. Ve většině případů není nutné používat sp_createstats; optimalizátor dotazů generuje statistiky v jednotlivých sloupcích podle potřeby ke zlepšení plánů dotazů, když je tato AUTO_CREATE_STATISTICS možnost zapnutá.

Další informace o statistikách naleznete v tématu Statistika. Pro více informací o generování statistik v jednotlivých sloupcích viz AUTO_CREATE_STATISTICS možnost v ALTER DATABASE SET options.

Transact-SQL konvence syntaxe

Syntaxe

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

Arguments

[ @indexonly = ] 'indexonly'

Vytváří statistiky pouze ve sloupcích, které jsou v existujícím indexu a nejsou prvním sloupcem v žádné definici indexu. @indexonly je char(9), s výchozím hodnotou NO.

[ @fullscan = ] 'fullscan'

Používá příkaz CREATE STATISTICS s touto FULLSCAN možností. @fullscan je char(9), s výchozím hodnotou NO.

[ @norecompute = ] 'norecompute'

Používá příkaz CREATE STATISTICS s touto NORECOMPUTE možností. @norecompute je char(12), s výchozím hodnotou NO.

[ @incremental = ] 'postupně'

Používá příkaz CREATE STATISTICS s touto INCREMENTAL = ON možností. @incremental je char(12), s výchozím hodnotou NO.

Hodnoty návratového kódu

0 (úspěch) nebo 1 (selhání).

Sada výsledků

Každý nový statistický objekt má stejný název jako sloupec, ve kterém je vytvořen.

Poznámky

sp_createstats nevytváří ani neaktualizuje statistiky ve sloupcích, které jsou prvním sloupcem v existujícím statistickém objektu. To zahrnuje první sloupec statistik vytvořených pro indexy, sloupce s jednosloupcovými statistikami generovanými s AUTO_CREATE_STATISTICS volbou a první sloupec statistik vytvořených tímto příkazem CREATE STATISTICS . sp_createstats Nevytváří statistiky v prvních sloupcích deaktivovaných indexů, pokud tento sloupec není použit v jiném povoleném indexu. sp_createstats Nevytváří statistiky v tabulkách s deaktivovaným shlukovaným indexem.

Když tabulka obsahuje sadu sloupců, sp_createstats nevytváří statistiky na řídkých sloupcích. Pro více informací o množinách sloupců a řídkých sloupcích viz Použít sady sloupců a Použít řídké sloupce.

Povolení

Vyžaduje členství v roli db_owner pevné databáze.

Examples

A. Vytvořte statistiky v jednotlivých sloupcích pro všechny způsobilé sloupce

Následující příklad vytváří statistiky v jednom sloupci pro všechny způsobilé sloupce v aktuální databázi.

EXECUTE sp_createstats;
GO

B. Vytvořte jednosloupcové statistiky pro všechny způsobilé indexové sloupce

Následující příklad vytváří statistiky v jednotlivých sloupcích pro všechny způsobilé sloupce, které jsou již v indexu a nejsou prvním sloupcem indexu.

EXECUTE sp_createstats 'indexonly';
GO