PostgreSQL La base de donnees la plus sophistiquee au monde.

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
cookbook:trouver_taille_table_index_tuples [2008/10/14 17:55] ioguixcookbook:trouver_taille_table_index_tuples [2008/10/15 16:54] (Version actuelle) – effacée ioguix
Ligne 1: Ligne 1:
-====== Trouver facilement la taille d'une table, de ses index et son nombre de tuples ====== 
  
-On a besoin parfois d'avoir rapidement la taille sur disque d'une table et le nombre d'enregistrements qu'elle contient. Pour cela, on peut utiliser la fonction ''pg_total_relation_size('nom de table')'' qui permet de rapatrier la taille **totale** de la table sur disque, index inclus. Si on ne veut pas connaître la taille prise par les index, il suffit d'utiliser la fonction ''pg_relation_size('nom de table')''. La soustraction des deux permet de connaître la taille des index! 
- 
-Tout cela nous permet de réaliser une vue fort sympathique pour l'administrateur de base de données. Attention à **lancer un ANALYZE avant tout requêtage de cette vue** : 
- 
-<code sql>drop view vue_stats; 
- 
-create view vue_stats as 
-SELECT 
-c.relname as nom, 
-c.reltuples::bigint as tuples, 
-pg_total_relation_size(c.relname) as volume_total, 
-pg_relation_size(c.relname) as volume_donnees, 
-pg_total_relation_size(c.relname)-pg_relation_size(c.relname) as volume_index 
-FROM pg_catalog.pg_class c 
-JOIN pg_catalog.pg_roles r ON r.oid = c.relowner 
-LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace 
-WHERE c.relkind = 'r' 
-AND n.nspname NOT IN ('pg_catalog', 'pg_toast') 
-AND pg_catalog.pg_table_is_visible(c.oid) 
-ORDER BY 1,2;</code> 
- 
-Merci à klando (Cédric) pour cet ajout, fort sympathique: il permet d'avoir les tailles des objets lisibles sous la forme //humaine// : 
- 
-<code sql>drop view vue_stats_pretty ; 
- 
-create view vue_stats_pretty as 
-SELECT 
-nom, 
-tuples, 
-pg_size_pretty(volume_total) as volume_total, 
-pg_size_pretty(volume_donnees) as volume_donnees, 
-pg_size_pretty(volume_index) as volume_index 
-FROM vue_stats;</code> 
- 
-Enjoy! 
- 
--- \\ 
-Jean-Paul ARGUDO\\ 
-http://dalibo.com | http://dalibo.org  
 
cookbook/trouver_taille_table_index_tuples.1223999732.txt.gz · Dernière modification : 2008/10/14 17:55 de ioguix