sp_updatestats (Transact-SQL)
S’applique à : SQL Server Azure SQL Database
S’exécute UPDATE STATISTICS
sur toutes les tables définies par l’utilisateur et internes dans la base de données active.
Pour plus d’informations sur UPDATE STATISTICS
, consultez UPDATE STATISTICS. Pour plus d’informations sur les statistiques, consultez Statistiques.
Conventions de la syntaxe Transact-SQL
Syntaxe
sp_updatestats [ [ @resample = ] 'resample' ]
Valeurs des codes de retour
0
(réussite) or 1
(échec).
Arguments
[ @resample = ] 'resample'
Spécifie qui sp_updatestats
utilise l’option RESAMPLE
de l’instruction UPDATE STATISTICS . Si resample
ce n’est pas spécifié, sp_updatestats
met à jour les statistiques à l’aide de l’échantillonnage par défaut. L’argument resample
est varchar(8) avec une valeur par défaut de NO
.
Notes
sp_updatestats
UPDATE STATISTICS
exécute , en spécifiant le ALL
mot clé, sur toutes les tables internes et définies par l’utilisateur dans la base de données. sp_updatestats
affiche les messages qui indiquent sa progression. Une fois la mise à jour terminée, elle signale que les statistiques sont mises à jour pour toutes les tables.
sp_updatestats
met à jour les statistiques sur les index non cluster désactivés et ne met pas à jour les statistiques sur les index cluster désactivés.
Pour les tables sur disque, sp_updatestats
met à jour les modification_counter
statistiques en fonction des informations de l’affichage catalogue sys.dm_db_stats_properties , en mettant à jour les statistiques où au moins une ligne est modifiée. Les statistiques sur les tables optimisées en mémoire sont toujours mises à jour lors de l’exécution sp_updatestats
. Par conséquent, n’exécutez sp_updatestats
pas plus que nécessaire.
sp_updatestats
peut déclencher une recompilation de procédures stockées ou d’autres codes compilés. Toutefois, sp_updatestats
cela peut ne pas entraîner de recompilation, si un seul plan de requête est possible pour les tables référencées et les index sur eux. Une recompilation serait inutile dans ce cas, même si les statistiques sont mises à jour.
sp_updatestats
conserve l’option la plus récente NORECOMPUTE
pour des statistiques spécifiques. Pour plus d’informations sur la désactivation et la réactivation des mises à jour des statistiques, consultez Statistiques.
Lors de la restauration d’une base de données vers SQL Server 2022 (16.x) à partir d’une version précédente, vous devez exécuter sp_updatestats
la base de données. Cela est lié à la définition des métadonnées appropriées pour la fonctionnalité de suppression automatique des statistiques introduite dans SQL Server 2022 (16.x). La fonctionnalité de suppression automatique est disponible dans Azure SQL Database, Azure SQL Managed Instance et à partir de SQL Server 2022 (16.x).
autorisations
Pour SQL Server, vous devez être propriétaire de la base de données (dbo) ou d’un membre du rôle serveur fixe sysadmin .
Pour Azure SQL Database, vous devez être membre du rôle de base de données fixe db_owner .
Exemples
L’exemple suivant met à jour les statistiques de toutes les tables de la base de données :
USE AdventureWorks2022;
GO
EXEC sp_updatestats;
Gestion automatique des index et des statistiques
Utilisez des solutions comme Adaptive Index Defrag pour gérer automatiquement la défragmentation des index et les mises à jour des statistiques pour une ou plusieurs bases de données. Cette procédure choisit automatiquement s’il faut reconstruire ou réorganiser un index en fonction de son niveau de fragmentation, entre autres, et mettre à jour les statistiques avec un seuil linéaire.
Contenu connexe
- Procédures stockées système (Transact-SQL)
- Options ALTER DATABASE SET (Transact-SQL)
- CREATE STATISTICS (Transact-SQL)
- DBCC SHOW_STATISTICS (Transact-SQL)
- DROP STATISTICS (Transact-SQL)
- sp_autostats (Transact-SQL)
- sp_createstats (Transact-SQL)
- sys.dm_db_stats_properties
- UPDATE STATISTICS (Transact-SQL)