Suis à l' aide que SQL SERVER 2012
j'ai mon Auto Update Stats
ON dans ma base de données.
À partir du lien ci-dessous, j'ai appris que les statistiques de mise à jour automatique se déclencheront pour chaque SQRT(1000 * Table rows)
modification des lignes du tableau.
https://blogs.msdn.microsoft.com/srgolla/2012/09/04/sql-server-statistics-explained/
J'ai créé une table avec 1000 enregistrements
SELECT TOP 500 Row_number()OVER (ORDER BY (SELECT NULL)) rn,
name
INTO stst
FROM sys.objects
Création de statistiques
CREATE STATISTICS rn
ON stst (rn)
CREATE STATISTICS name
ON stst (name)
Vérification des statistiques créées
DBCC show_statistics('stst', rn) -- Rows 500
DBCC show_statistics('stst', name) -- Rows 500
Selon la formule
select SQRT(1000 * 500) -- 707.106781186548
Donc, si j'ajoute / modifie des 707.106781186548
enregistrements dans ma table, les statistiques de mise à jour automatique doivent se déclencher
Ajouter 1000
plus d'enregistrements à ma table qui devraient être plus que suffisants pour tirerauto update stats
INSERT INTO stst(rn,name)
SELECT TOP 1000 Row_number()OVER (ORDER BY (SELECT NULL)) rn,
a.name
FROM sys.objects a
Pour tirer le auto update stats
Select * from stst
Vérification des statistiques
DBCC show_statistics('stst', rn) -- Rows 500
DBCC show_statistics('stst', name) -- Rows 500
Malheureusement encore l' Rows
est 500
seulement.
Même après avoir inséré des 1000
enregistrements dans ma table, ce qui est évidemment plus important que 707.106781186548
lors de l'exécution SELECT
pourquoi les statistiques de mise à jour automatique ne se sont pas déclenchées? Qu'est-ce que j'oublie ici