Estoy usando SQL SERVER 2012tengo mi Auto Update Stats ON en mi base de datos.
Desde el siguiente enlace aprendí que, las estadísticas de Actualización automática se activarán por cada SQRT(1000 * Table rows)cambio en las filas de la tabla.
https://blogs.msdn.microsoft.com/srgolla/2012/09/04/sql-server-statistics-explained/
Creé una tabla con 1000 registros
SELECT TOP 500 Row_number()OVER (ORDER BY (SELECT NULL)) rn,
name
INTO stst
FROM sys.objects
Creando estadísticas
CREATE STATISTICS rn
ON stst (rn)
CREATE STATISTICS name
ON stst (name)
Comprobación de las estadísticas creadas
DBCC show_statistics('stst', rn) -- Rows 500
DBCC show_statistics('stst', name) -- Rows 500
Según la fórmula
select SQRT(1000 * 500) -- 707.106781186548
Entonces, si agrego / modifico 707.106781186548registros en mi tabla, las estadísticas de actualización automática deberían dispararse
Agregar 1000más registros a mi tabla que deberían ser más que suficientes para dispararauto update stats
INSERT INTO stst(rn,name)
SELECT TOP 1000 Row_number()OVER (ORDER BY (SELECT NULL)) rn,
a.name
FROM sys.objects a
Para disparar el auto update stats
Select * from stst
Comprobando las estadísticas
DBCC show_statistics('stst', rn) -- Rows 500
DBCC show_statistics('stst', name) -- Rows 500
Lamentablemente todavía Rowses el 500único.
Incluso después de insertar 1000registros en mi tabla, que obviamente es mayor que 707.106781186548mientras realizaba, SELECT¿por qué las estadísticas de Actualización automática no se activaron? Que me estoy perdiendo aqui
fuente
