Partage via


sp_createstats (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance

Appelle l’instruction CREATE STATISTICS pour créer des statistiques à colonne unique sur des colonnes qui ne sont pas déjà la première colonne d’un objet de statistiques. La création de statistiques à colonne unique augmente le nombre d’histogrammes, ce qui peut améliorer les estimations de cardinalité, les plans de requête et les performances des requêtes. La première colonne d’un objet de statistiques a un histogramme ; Les autres colonnes n’ont pas d’histogramme.

sp_createstats est utile pour les applications telles que l’évaluation des temps d’exécution des requêtes quand les temps d’exécution des requêtes sont critiques et ne peuvent pas attendre que l’optimiseur de requête génère des statistiques à colonne unique. Dans la plupart des cas, il n’est pas nécessaire d’utiliser sp_createstats; l’optimiseur de requête génère des statistiques à colonne unique si nécessaire pour améliorer les plans de requête lorsque l’option AUTO_CREATE_STATISTICS est activée.

Pour plus d’informations sur les statistiques, consultez Statistiques. Pour plus d’informations sur la génération de statistiques à colonne unique, consultez l’option AUTO_CREATE_STATISTICS options ALTER DATABASE SET.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

[ @indexonly = ] 'indexonly'

Crée des statistiques uniquement sur les colonnes qui se trouvent dans un index existant et ne sont pas la première colonne d’une définition d’index. @indexonly est char(9), avec la valeur par défaut NO.

[ @fullscan = ] 'fullscan'

Utilise l’instruction CREATE STATISTICS avec l’option FULLSCAN . @fullscan est char(9), avec la valeur par défaut NO.

[ @norecompute = ] 'norecompute'

Utilise l’instruction CREATE STATISTICS avec l’option NORECOMPUTE . @norecompute est char(12), avec la valeur par défaut NO.

[ @incremental = ] 'incrémentiel'

Utilise l’instruction CREATE STATISTICS avec l’option INCREMENTAL = ON . @incremental est char(12), avec la valeur par défaut NO.

Valeurs des codes de retour

0 (réussite) or 1 (échec).

Jeu de résultats

Chaque nouvel objet de statistiques porte le même nom que la colonne sur laquelle il est créé.

Notes

sp_createstats ne crée pas ou ne met pas à jour les statistiques sur les colonnes qui sont la première colonne d’un objet de statistiques existant. Cela inclut la première colonne des statistiques créées pour les index, les colonnes avec des statistiques à colonne unique générées avec AUTO_CREATE_STATISTICS l’option et la première colonne de statistiques créée avec l’instruction CREATE STATISTICS . sp_createstats ne crée pas de statistiques sur les premières colonnes des index désactivés, sauf si cette colonne est utilisée dans un autre index activé. sp_createstats ne crée pas de statistiques sur les tables avec un index cluster désactivé.

Lorsque la table contient un jeu de colonnes, sp_createstats ne crée pas de statistiques sur les colonnes éparses. Pour plus d’informations sur les jeux de colonnes et les colonnes éparses, consultez Utiliser des jeux de colonnes et utiliser des colonnes éparses.

autorisations

Nécessite l'appartenance au rôle de base de données fixe db_owner.

Exemples

R. Créer des statistiques de colonnes uniques sur toutes les colonnes appropriées

L'exemple suivant crée des statistiques de colonnes uniques pour toutes les colonnes appropriées de la base de données active.

EXEC sp_createstats;
GO

B. Créer des statistiques de colonnes uniques sur toutes les colonnes d'index appropriées

L’exemple suivant crée des statistiques à colonne unique sur toutes les colonnes éligibles qui sont déjà dans un index et qui ne sont pas la première colonne de l’index.

EXEC sp_createstats 'indexonly';
GO