Estou usando o SQL SERVER 2012
meu Auto Update Stats
ON no meu banco de dados.
No link abaixo, eu aprendi que, as estatísticas da Atualização Automática serão acionadas para cada SQRT(1000 * Table rows)
alteração nas linhas da tabela.
https://blogs.msdn.microsoft.com/srgolla/2012/09/04/sql-server-statistics-explained/
Criei uma tabela com 1000 registros
SELECT TOP 500 Row_number()OVER (ORDER BY (SELECT NULL)) rn,
name
INTO stst
FROM sys.objects
Criando estatísticas
CREATE STATISTICS rn
ON stst (rn)
CREATE STATISTICS name
ON stst (name)
Verificando as estatísticas criadas
DBCC show_statistics('stst', rn) -- Rows 500
DBCC show_statistics('stst', name) -- Rows 500
Conforme a fórmula
select SQRT(1000 * 500) -- 707.106781186548
Portanto, se eu adicionar / modificar 707.106781186548
registros na minha tabela, as estatísticas de atualização automática devem ser acionadas
Adicione 1000
mais registros à minha tabela que devem ser mais 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 o auto update stats
Select * from stst
Verificando as estatísticas
DBCC show_statistics('stst', rn) -- Rows 500
DBCC show_statistics('stst', name) -- Rows 500
Infelizmente ainda Rows
é o 500
único.
Mesmo depois de inserir 1000
registros na minha tabela, que é obviamente maior do que 707.106781186548
durante a execução, SELECT
por que as estatísticas da Atualização Automática não foram acionadas? O que estou perdendo aqui