Compartir a través de


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_updatestatsejecuta , especificando la ALL palabra clave , en todas las tablas internas y definidas UPDATE STATISTICSpor 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.