Page 1 sur 1

Estimation rapide du nombre de lignes d'une table

Posté : mar. 11 déc. 2018 18:31
par Phil
Merci à Vincent pour sa question :

"Est-il possible avec PostgreSQL d'obtenir rapidement une estimation du nombre de lignes d'une table comme avec Oracle via la colonne num_rows de dba_tables ?"

Réponse :
Oui, par exemple via les données issues de la collecte de statistiques.

Exemple :

Code : Tout sélectionner

select version();
                                                    version
---------------------------------------------------------------------------------------------------------------
 PostgreSQL 11.1 (Debian 11.1-1.pgdg+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.2.0-9) 8.2.0, 64-bit
(1 ligne)


select count(1) from postgres.lancers;
 count
--------
 100000
(1 ligne)


select n_live_tup from pg_stat_all_tables where schemaname = 'postgres' and relname = 'lancers';
 n_live_tup
------------
     100000
(1 ligne)

Attention, ici le nombre réel est égal au nombre estimé mais ce n'est pas une règle générale : il s'agit bien d'une estimation.