sp_createstats (Transact-SQL)
Appelle l'instruction CREATE STATISTICS pour créer des statistiques de colonnes uniques sur les colonnes qui ne constituent pas déjà la première colonne d'un objet de statistiques. La création de statistiques de colonnes uniques entraîne une augmentation du nombre d'histogrammes, ce qui peut permettre d'améliorer les estimations de cardinalité, les plans de requêtes et les performances des requêtes. La première colonne d'un objet de statistiques comporte un histogramme ; les autres colonnes n'ont pas d'histogramme.
sp_createstats est utile aux applications de tests des performances, par exemple, pour lesquelles les délais d'exécution des requêtes sont critiques, car il n'est pas possible d'attendre que l'optimiseur de requête génère des statistiques de colonnes uniques. 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 de colonnes uniques selon les besoins pour améliorer les plans de requêtes lorsque l'option AUTO_CREATE_STATISTICS a la valeur ON.
Pour plus d'informations sur les statistiques, consultez Utilisation des statistiques pour améliorer les performances des requêtes. Pour plus d'informations sur la génération de statistiques de colonnes uniques, consultez l'option AUTO_CREATE_STATISTICS dans Options SET de ALTER DATABASE (Transact-SQL).
Syntaxe
sp_createstats [ [ @indexonly = ] 'indexonly' ]
[ , [ @fullscan = ] 'fullscan' ]
[ , [ @norecompute = ] 'norecompute' ]
Arguments
[ @indexonly= ] 'indexonly'
Crée des statistiques uniquement sur les colonnes qui se trouvent dans un index existant et qui ne constituent pas la première colonne d'une définition d'index. indexonly est de type char(9). La valeur par défaut est NO.[ @fullscan= ] 'fullscan'
Utilise l'instruction CREATE STATISTICS avec l'option FULLSCAN. fullscan est de type char(9). La valeur par défaut est NO.[ @norecompute= ] 'norecompute'
Utilise l'instruction CREATE STATISTICS avec l'option NORECOMPUTE. norecompute est de type char(12). La valeur par défaut est NO.
Valeurs des codes de retour
0 (succès) ou 1 (échec)
Jeux 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 et ne met pas à jour de statistiques pour les colonnes qui constituent la première colonne d'un objet de statistiques existant ; cela inclut la première colonne de statistiques créées pour des index, les colonnes comportant des statistiques de colonnes uniques générées à l'aide de l'option AUTO_CREATE_STATISTICS, ainsi que la première colonne de statistiques créées à l'aide de l'instruction CREATE STATISTICS. sp_createstats ne crée pas de statistiques sur les premières colonnes des index désactivés à moins que ces colonnes ne soient utilisées dans un autre index activé. sp_createstats ne crée pas de statistiques sur les tables dont l'index cluster est désactivé.
Lorsque la table contient un jeu de colonnes, sp_createstats ne crée pas de statistiques sur les colonnes fragmentées. Pour plus d'informations sur les jeux de colonnes et les colonnes fragmentées, consultez Utilisation de jeux de colonnes et Utilisation de colonnes fragmentées.
Autorisations
Nécessite l'appartenance au rôle de base de données fixe db_owner.
Exemples
A. 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 de colonnes uniques pour toutes les colonnes appropriées qui sont déjà dans un index et qui ne constituent pas la première colonne de cet index.
EXEC sp_createstats 'indexonly';
GO
Voir aussi