1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | SELECT l.what, l.nr AS "bytes/ct" , CASE WHEN is_size THEN pg_size_pretty(nr) END AS bytes_pretty , CASE WHEN is_size THEN nr / x.ct END AS bytes_per_row FROM ( SELECT min (tableoid) AS tbl -- same as 'public.tbl'::regclass::oid , count (*) AS ct , sum (length(t::text)) AS txt_len -- length in characters FROM radius_db.radacct t -- provide table name *once* ) x , LATERAL ( VALUES ( true , 'core_relation_size' , pg_relation_size(tbl)) , ( true , 'visibility_map' , pg_relation_size(tbl, 'vm' )) , ( true , 'free_space_map' , pg_relation_size(tbl, 'fsm' )) , ( true , 'table_size_incl_toast' , pg_table_size(tbl)) , ( true , 'indexes_size' , pg_indexes_size(tbl)) , ( true , 'total_size_incl_toast_and_indexes' , pg_total_relation_size(tbl)) , ( true , 'live_rows_in_text_representation' , txt_len) , ( false , '------------------------------' , NULL ) , ( false , 'row_count' , ct) , ( false , 'live_tuples' , pg_stat_get_live_tuples(tbl)) , ( false , 'dead_tuples' , pg_stat_get_dead_tuples(tbl)) ) l(is_size, what, nr); |
Friday, January 27, 2017
PostgreSQL: size of a row
Source: Measure the size of a PostgreSQL table row
Labels:
postgresql