sp_createstats (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Ruft die CREATE STATISTICS-Anweisung auf, um einspaltige Statistiken für Spalten zu erstellen, die noch nicht die erste Spalte in einem Statistikobjekt sind. Das Erstellen von Statistiken für einzelne Spalten erhöht die Anzahl von Histogrammen und kann zur Verbesserung von Kardinalitätsschätzungen, Abfrageplänen und Abfrageleistung führen. Die erste Spalte eines Statistikobjekts verfügt über ein Histogramm, während andere Spalten kein Histogramm enthalten.

sp_createstats ist für Anwendungen wie Vergleichstests hilfreich, wenn Abfrageausführungszeiten ein kritischer Faktor sind, und es zu lange dauert, bis der Abfrageoptimierer Statistiken für einzelne Spalten generiert hat. In den meisten Fällen ist es nicht notwendig, sp_createstats zu verwenden; Der Abfrageoptimierer generiert bei Bedarf einspaltige Statistiken, um Abfragepläne zu verbessern, wenn die Option AUTO_CREATE_STATISTICS aktiviert ist.

Weitere Informationen zu Statistiken finden Sie unter Statistik. Weitere Informationen zum Generieren einspaltiger Statistiken finden Sie unter der Option AUTO_CREATE_STATISTICS in ALTER DATABASE SET-Optionen (Transact-SQL).

Transact-SQL-Syntaxkonventionen

Syntax

  
sp_createstats   
    [   [ @indexonly =   ] { 'indexonly'   | 'NO' } ]   
    [ , [ @fullscan =    ] { 'fullscan'    | 'NO' } ]   
    [ , [ @norecompute = ] { 'norecompute' | 'NO' } ]  
    [ , [ @incremental = ] { 'incremental' | 'NO' } ]  

Argumente

[ @indexonly = ] 'indexonly' Erstellt Statistiken nur für Spalten, die sich in einem vorhandenen Index befinden und nicht die erste Spalte in einer Indexdefinition sind. indexonly ist char(9). Der Standardwert ist NO.

[ @fullscan = ] 'fullscan' Verwendet die CREATE STATISTICS-Anweisung mit der OPTION FULLSCAN . fullscan ist char(9). Der Standardwert ist NO.

[ @norecompute = ] 'norecompute' Verwendet die CREATE STATISTICS-Anweisung mit der Option NORECOMPUTE . norecompute ist char(12). Der Standardwert ist NO.

[ @incremental = ] 'incremental' Verwendet die CREATE STATISTICS-Anweisung mit der Option INCREMENTAL = ON . Inkrementell ist char(12). Der Standardwert ist NO.

Rückgabecodewerte

„0“ (erfolgreich) oder „1“ (fehlerhaft)

Resultsets

Jedes neue Statistikobjekt hat den gleichen Namen wie die Spalte, für die es erstellt wurde.

Bemerkungen

sp_createstats erstellt oder aktualisiert keine Statistiken für Spalten, die die erste Spalte in einem vorhandenen Statistikobjekt sind. Dies umfasst die erste Spalte von Statistiken, die für Indizes erstellt wurden, Spalten mit einspaltigen Statistiken, die mit AUTO_CREATE_STATISTICS Option generiert wurden, und die erste Spalte mit Statistiken, die mit der CREATE STATISTICS-Anweisung erstellt wurden. sp_createstats erstellt keine Statistiken für die ersten Spalten deaktivierter Indizes, es sei denn, diese Spalte wird in einem anderen aktivierten Index verwendet. sp_createstats erstellt keine Statistiken für Tabellen mit einem deaktivierten gruppierten Index.

Wenn die Tabelle einen Spaltensatz enthält, werden mit sp_createstats keine Statistiken für Sparsespalten erstellt. Weitere Informationen zu Spaltensätzen und Sparsespalten finden Sie unter Verwenden von Spaltensätzen und Verwenden von Sparsespalten.

Berechtigungen

Erfordert die Mitgliedschaft in der festen Datenbankrolle "db_owner".

Beispiele

A. Erstellen von Statistiken für einzelne Spalten für alle geeigneten Spalten

Im folgenden Beispiel wird eine Statistik für einzelne Spalten für alle geeigneten Spalten in der aktuellen Datenbank erstellt.

EXEC sp_createstats;  
GO  

B. Erstellen von Statistiken für einzelne Spalten für alle geeigneten Indexspalten

Im folgenden Beispiel werden Statistiken für einzelne Spalten für alle geeigneten Spalten erstellt, die sich bereits in einem Index befinden und nicht der ersten Spalte im Index entsprechen.

EXEC sp_createstats 'indexonly';  
GO  

Weitere Informationen

Statistik
CREATE STATISTICS (Transact-SQL)
ALTER DATABASE SET-Optionen (Transact-SQL)
DBCC SHOW_STATISTICS (Transact-SQL)
DROP STATISTICS (Transact-SQL)
UPDATE STATISTICS (Transact-SQL)
Gespeicherte Prozeduren für die Datenbank-Engine (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)