Sto usando SQL SERVER 2012
ho il mio Auto Update Stats
ON nel mio database.
Dal link di seguito ho appreso che, le statistiche di aggiornamento automatico verranno attivate per ogni SQRT(1000 * Table rows)
modifica delle righe della tabella.
https://blogs.msdn.microsoft.com/srgolla/2012/09/04/sql-server-statistics-explained/
Ho creato una tabella con 1000 record
SELECT TOP 500 Row_number()OVER (ORDER BY (SELECT NULL)) rn,
name
INTO stst
FROM sys.objects
Creare statistiche
CREATE STATISTICS rn
ON stst (rn)
CREATE STATISTICS name
ON stst (name)
Verifica delle statistiche create
DBCC show_statistics('stst', rn) -- Rows 500
DBCC show_statistics('stst', name) -- Rows 500
Secondo la formula
select SQRT(1000 * 500) -- 707.106781186548
Quindi, se aggiungo / modifico i 707.106781186548
record nella mia tabella, le statistiche di aggiornamento automatico dovrebbero attivarsi
Aggiungi 1000
più record al mio tavolo che dovrebbe essere più che sufficiente per sparareauto update stats
INSERT INTO stst(rn,name)
SELECT TOP 1000 Row_number()OVER (ORDER BY (SELECT NULL)) rn,
a.name
FROM sys.objects a
Per sparare al auto update stats
Select * from stst
Verifica delle statistiche
DBCC show_statistics('stst', rn) -- Rows 500
DBCC show_statistics('stst', name) -- Rows 500
Purtroppo ancora Rows
è 500
unica.
Anche dopo aver inserito i 1000
record nella mia tabella che è ovviamente maggiore rispetto a 707.106781186548
quando si eseguono i SELECT
motivi per cui le statistiche di Auto Update non si sono attivate? Cosa mi sto perdendo qui