@@ -149,16 +149,16 @@ WHERE tablename = 'users';
149149-- Approximate bloat calculation
150150SELECT
151151 schemaname,
152- tablename ,
153- pg_size_pretty(pg_total_relation_size(schemaname || ' . ' || tablename )) as total_size,
154- pg_size_pretty(pg_relation_size(schemaname || ' . ' || tablename )) as table_size,
155- round(100 * pg_relation_size(schemaname || ' . ' || tablename )::numeric /
156- NULLIF(pg_total_relation_size(schemaname || ' . ' || tablename ), 0 ), 2 ) as table_pct,
152+ relname ,
153+ pg_size_pretty(pg_total_relation_size(format( ' %I.%I ' , schemaname, relname) )) as total_size,
154+ pg_size_pretty(pg_relation_size(format( ' %I.%I ' , schemaname, relname) )) as table_size,
155+ round(100 * pg_relation_size(format( ' %I.%I ' , schemaname, relname) )::numeric /
156+ NULLIF(pg_total_relation_size(format( ' %I.%I ' , schemaname, relname) ), 0 ), 2 ) as table_pct,
157157 n_dead_tup,
158158 round(100 .0 * n_dead_tup / NULLIF(n_live_tup + n_dead_tup, 0 ), 2 ) as dead_pct
159159FROM pg_stat_user_tables
160- WHERE pg_total_relation_size(schemaname || ' . ' || tablename ) > 10485760 -- > 10MB
161- ORDER BY pg_total_relation_size(schemaname || ' . ' || tablename ) DESC ;
160+ WHERE pg_total_relation_size(format( ' %I.%I ' , schemaname, relname) ) > 10485760 -- > 10MB
161+ ORDER BY pg_total_relation_size(format( ' %I.%I ' , schemaname, relname) ) DESC ;
162162```
163163
164164### Detect Index Bloat
@@ -167,8 +167,8 @@ ORDER BY pg_total_relation_size(schemaname||'.'||tablename) DESC;
167167-- Unused indexes
168168SELECT
169169 schemaname,
170- tablename ,
171- indexname ,
170+ relname ,
171+ indexrelname ,
172172 idx_scan,
173173 pg_size_pretty(pg_relation_size(indexrelid)) as index_size
174174FROM pg_stat_user_indexes
@@ -179,16 +179,16 @@ ORDER BY pg_relation_size(indexrelid) DESC;
179179-- Index size vs table size
180180SELECT
181181 schemaname,
182- tablename ,
183- pg_size_pretty(pg_relation_size(schemaname || ' . ' || tablename )) as table_size,
184- pg_size_pretty(pg_total_relation_size(schemaname || ' . ' || tablename ) -
185- pg_relation_size(schemaname || ' . ' || tablename )) as indexes_size,
186- round(100 .0 * (pg_total_relation_size(schemaname || ' . ' || tablename ) -
187- pg_relation_size(schemaname || ' . ' || tablename ))::numeric /
188- NULLIF(pg_relation_size(schemaname || ' . ' || tablename ), 0 ), 2 ) as index_ratio_pct
182+ relname ,
183+ pg_size_pretty(pg_relation_size(format( ' %I.%I ' , schemaname, relname) )) as table_size,
184+ pg_size_pretty(pg_total_relation_size(format( ' %I.%I ' , schemaname, relname) ) -
185+ pg_relation_size(format( ' %I.%I ' , schemaname, relname) )) as indexes_size,
186+ round(100 .0 * (pg_total_relation_size(format( ' %I.%I ' , schemaname, relname) ) -
187+ pg_relation_size(format( ' %I.%I ' , schemaname, relname) ))::numeric /
188+ NULLIF(pg_relation_size(format( ' %I.%I ' , schemaname, relname) ), 0 ), 2 ) as index_ratio_pct
189189FROM pg_stat_user_tables
190- WHERE pg_total_relation_size(schemaname || ' . ' || tablename ) > 10485760
191- ORDER BY pg_total_relation_size(schemaname || ' . ' || tablename ) DESC ;
190+ WHERE pg_total_relation_size(format( ' %I.%I ' , schemaname, relname) ) > 10485760
191+ ORDER BY pg_total_relation_size(format( ' %I.%I ' , schemaname, relname) ) DESC ;
192192```
193193
194194### Remove Bloat
@@ -306,8 +306,8 @@ ORDER BY seq_scan DESC; -- Tables with most sequential scans
306306-- Index usage efficiency
307307SELECT
308308 schemaname,
309- tablename ,
310- indexname ,
309+ relname ,
310+ indexrelname ,
311311 idx_scan,
312312 idx_tup_read,
313313 idx_tup_fetch,
@@ -318,8 +318,8 @@ ORDER BY idx_scan; -- Low idx_scan = potentially unused index
318318-- Index hit ratio
319319SELECT
320320 schemaname,
321- tablename ,
322- indexname ,
321+ relname ,
322+ indexrelname ,
323323 idx_scan,
324324 idx_tup_read,
325325 idx_tup_fetch,
@@ -415,7 +415,7 @@ ORDER BY age(relfrozenxid) DESC
415415LIMIT 20 ;
416416
417417-- Prevent wraparound: VACUUM FREEZE
418- VACUUM FREEZE; -- All databases
418+ VACUUM FREEZE; -- Current database
419419VACUUM FREEZE users; -- Specific table
420420```
421421
0 commit comments