Estimation rapide du nombre de lignes d'une table

Initialiser un cluster, gérer les accès, modifier les paramètres par défaut, interroger le catalogue avec psql ou pgAdmin, déplacer les données avec pgdump etc.
Répondre
Phil
Administrateur du site
Messages : 222
Enregistré le : mar. 1 sept. 2015 00:38
Localisation : France
Contact :

Estimation rapide du nombre de lignes d'une table

Message par Phil » mar. 11 déc. 2018 18:31

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.
Cdlt. Phil - pgphil.ovh

Répondre