UPDATE STATISTICS (Transact-SQL)
Actualiza las estadísticas de optimización de consulta para una tabla o vista indizada. De forma predeterminada, el optimizador de consultas ya actualiza las estadísticas como requisito para mejorar el plan de consulta; en algunos casos puede mejorar el rendimiento de las consultas utilizando UPDATE STATISTICS o el procedimiento almacenado sp_updatestats para actualizar las estadísticas con más frecuencia que la de las actualizaciones predeterminadas.
La actualización de las estadísticas asegura que las consultas se compilan con estadísticas actualizadas. Sin embargo, la actualización de las estadísticas hace que las consultas se vuelvan a compilar. Se recomienda no actualizar las estadísticas con demasiada frecuencia, porque hay que elegir el punto válido entre la mejora de los planes de consulta y el tiempo empleado en volver a compilar las consultas. Los inconvenientes específicos dependen de su aplicación. UPDATE STATISTICS puede usar tempdb para ordenar el ejemplo de filas con fines de compilación de estadísticas.
Para obtener más información sobre estadísticas, incluido cuándo se va a usar UPDATE STATISTICS, vea Utilizar las estadísticas para mejorar el rendimiento de las consultas.
UPDATE STATISTICS table_or_indexed_view_name
[
{
{ index_or_statistics__name }
| ( { index_or_statistics_name } [ ,...n ] )
}
]
[ WITH
[
[ FULLSCAN ]
| SAMPLE number { PERCENT | ROWS } ]
| RESAMPLE
| <update_stats_stream_option> [ ,...n ]
]
[ [ , ] [ ALL | COLUMNS | INDEX ]
[ [ , ] NORECOMPUTE ]
] ;
<update_stats_stream_option> ::=
[ STATS_STREAM = stats_stream ]
[ ROWCOUNT = numeric_constant ]
[ PAGECOUNT = numeric contant ]
Cuándo usar UPDATE STATISTICS
Para obtener más información acerca de cuándo usar UPDATE STATISTICS, vea Utilizar las estadísticas para mejorar el rendimiento de las consultas.
Actualizar todas las estadísticas con sp_updatestats
Para obtener información sobre cómo actualizar estadísticas para todas las tablas internas y definidas por el usuario de la base de datos, vea el procedimiento almacenado sp_updatestats (Transact-SQL). Por ejemplo, el comando siguiente llama a sp_updatestats para actualizar todas las estadísticas de la base de datos.
EXEC sp_updatestats
Determinar la actualización de estadísticas más reciente
Para determinar cuándo se actualizaron las estadísticas por última vez, use la función STATS_DATE.
A. Actualizar todas las estadísticas en una tabla
En este ejemplo se actualizan las estadísticas de todos los índices de la tabla SalesOrderDetail.
USE AdventureWorks2008R2; GO UPDATE STATISTICS Sales.SalesOrderDetail; GO
B. Actualizar las estadísticas para un índice
En este ejemplo se actualizan las estadísticas del índice AK_SalesOrderDetail_rowguid de la tabla SalesOrderDetail.
USE AdventureWorks2008R2; GO UPDATE STATISTICS Sales.SalesOrderDetail AK_SalesOrderDetail_rowguid; GO
C. Actualizar las estadísticas con un muestreo del 50%
En este ejemplo se crean y, después, se actualizan las estadísticas de las columnas Name y ProductNumber de la tabla Product.
USE AdventureWorks2008R2;
GO
CREATE STATISTICS Products
ON Production.Product ([Name], ProductNumber)
WITH SAMPLE 50 PERCENT
-- Time passes. The UPDATE STATISTICS statement is then executed.
UPDATE STATISTICS Production.Product(Products)
WITH SAMPLE 50 PERCENT;
D. Actualizar estadísticas utilizando FULLSCAN y NORECOMPUTE
En este ejemplo se actualizan las estadísticas de Products de la tabla Product, se exige un examen completo de todas las filas de la tabla Product y se desactivan las estadísticas automáticas para las estadísticas de Products.
USE AdventureWorks2008R2;
GO
UPDATE STATISTICS Production.Product(Products)
WITH FULLSCAN, NORECOMPUTE;
GO