sp_updatestats (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database
Se ejecuta UPDATE STATISTICS
en todas las tablas internas y definidas por el usuario en la base de datos actual.
Para obtener más información sobre UPDATE STATISTICS
, vea UPDATE STATISTICS. Para obtener más información sobre las estadísticas, vea Estadísticas.
Convenciones de sintaxis de Transact-SQL
Sintaxis
sp_updatestats [ [ @resample = ] 'resample' ]
Valores de código de retorno
0
(correcto) o 1
(erróneo).
Argumentos
[ @resample = ] 'resample'
Especifica que usa la RESAMPLE
opción de la instrucción UPDATE STATISTICS.sp_updatestats
Si resample
no se especifica, sp_updatestats
actualiza las estadísticas mediante el muestreo predeterminado. El resample
argumento es varchar(8) con un valor predeterminado de NO
.
Comentarios
sp_updatestats
ejecuta , especificando la ALL
palabra clave , en todas las tablas internas y definidas UPDATE STATISTICS
por el usuario de la base de datos. sp_updatestats
muestra mensajes que indican su progreso. Cuando se completa la actualización, informa de que las estadísticas se actualizan para todas las tablas.
sp_updatestats
actualiza las estadísticas de los índices no clúster deshabilitados y no actualiza las estadísticas de los índices agrupados deshabilitados.
En el caso de las tablas basadas en disco, sp_updatestats
actualiza las estadísticas en función de la información de la modification_counter
vista de catálogo de sys.dm_db_stats_properties , actualizando las estadísticas en las que se modifica al menos una fila. Las estadísticas de las tablas optimizadas para memoria siempre se actualizan al ejecutar sp_updatestats
. Por lo tanto, no ejecute sp_updatestats
más de lo necesario.
sp_updatestats
puede desencadenar una recompilación de procedimientos almacenados u otro código compilado. Sin embargo, sp_updatestats
podría no provocar una recompilación, si solo es posible un plan de consulta para las tablas a las que se hace referencia y los índices en ellas. En estos casos sería necesaria una recompilación, aunque las estadísticas estén actualizadas.
sp_updatestats
conserva la opción más reciente NORECOMPUTE
para estadísticas específicas. Para obtener más información sobre cómo deshabilitar y volver a habilitar las actualizaciones de estadísticas, vea Estadísticas.
Al restaurar una base de datos a SQL Server 2022 (16.x) desde una versión anterior, debe ejecutarse sp_updatestats
en la base de datos. Esto está relacionado con la configuración de metadatos adecuados para la característica de eliminación automática de estadísticas introducida en SQL Server 2022 (16.x). La característica de eliminación automática está disponible en Azure SQL Database, Azure SQL Instancia administrada y a partir de SQL Server 2022 (16.x).
Permisos
Para SQL Server, debe ser el propietario de la base de datos (dbo) o miembro del rol fijo de servidor sysadmin .
Para Azure SQL Database, debe ser miembro del rol fijo de base de datos db_owner .
Ejemplos
En el ejemplo siguiente se actualizan las estadísticas de todas las tablas de la base de datos:
USE AdventureWorks2022;
GO
EXEC sp_updatestats;
Administración automática de índice y estadísticas
Usa soluciones como la desfragmentación de índice adaptable para administrar automáticamente las actualizaciones de estadísticas y la desfragmentación de índices para una o varias bases de datos. Este procedimiento elige automáticamente si se debe volver a generar o reorganizar un índice según su nivel de fragmentación, entre otros parámetros y actualiza las estadísticas con un umbral lineal.
Contenido relacionado
- Procedimientos almacenados del sistema (Transact-SQL)
- Opciones de 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)