Suis à l' aide que SQL SERVER 2012j'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.106781186548enregistrements dans ma table, les statistiques de mise à jour automatique doivent se déclencher
Ajouter 1000plus 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' Rowsest 500seulement.
Même après avoir inséré des 1000enregistrements dans ma table, ce qui est évidemment plus important que 707.106781186548lors de l'exécution SELECTpourquoi les statistiques de mise à jour automatique ne se sont pas déclenchées? Qu'est-ce que j'oublie ici