Aller au contenu principal
Kill -9 Club
Se connecter

balayage séquentiel (Seq Scan)

Bases de données

Le nœud de plan qui lit toutes les lignes d'une table pour n'en garder que celles qui correspondent : ce que EXPLAIN ANALYZE affiche sous le nom Seq Scan. En voir un n'est pas un défaut à corriger. Sur une petite table, ou pour une requête qui ramène la plupart des lignes, tout lire est le moyen le moins cher, et le planificateur l'a choisi exprès. Un index n'est pas gratuit : il est mis à jour à chaque écriture et occupe du disque. Il se justifie par une requête identifiée sur une grande table, pas par précaution — une table sur-indexée ralentit précisément les insertions que l'application fait le plus souvent. pg_stat_user_tables dit où les balayages s'accumulent réellement, en comparant seq_scan et idx_scan table par table. Et avant d'ajouter quoi que ce soit, comparez rows estimé et actual rows : un écart d'un facteur 100 signale des statistiques périmées, que ANALYZE sur la table met à jour.

Aussi écrit : Seq Scan, scan séquentiel