Skip to content

Commit 21cde6f

Browse files
authored
fix(postgres-pro): correct pg_stat query examples (#191)
Made-with: Cursor
1 parent efebc44 commit 21cde6f

2 files changed

Lines changed: 26 additions & 26 deletions

File tree

skills/postgres-pro/references/maintenance.md

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -149,16 +149,16 @@ WHERE tablename = 'users';
149149
-- Approximate bloat calculation
150150
SELECT
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
159159
FROM 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
168168
SELECT
169169
schemaname,
170-
tablename,
171-
indexname,
170+
relname,
171+
indexrelname,
172172
idx_scan,
173173
pg_size_pretty(pg_relation_size(indexrelid)) as index_size
174174
FROM pg_stat_user_indexes
@@ -179,16 +179,16 @@ ORDER BY pg_relation_size(indexrelid) DESC;
179179
-- Index size vs table size
180180
SELECT
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
189189
FROM 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
307307
SELECT
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
319319
SELECT
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
415415
LIMIT 20;
416416

417417
-- Prevent wraparound: VACUUM FREEZE
418-
VACUUM FREEZE; -- All databases
418+
VACUUM FREEZE; -- Current database
419419
VACUUM FREEZE users; -- Specific table
420420
```
421421

skills/postgres-pro/references/performance.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ ANALYZE users;
120120
ANALYZE; -- All tables
121121

122122
-- Check statistics freshness
123-
SELECT schemaname, tablename, last_analyze, last_autoanalyze
123+
SELECT schemaname, relname, last_analyze, last_autoanalyze
124124
FROM pg_stat_user_tables
125125
WHERE schemaname = 'public';
126126

@@ -254,8 +254,8 @@ FROM pg_stat_database;
254254
-- Index usage
255255
SELECT
256256
schemaname,
257-
tablename,
258-
indexname,
257+
relname,
258+
indexrelname,
259259
idx_scan,
260260
idx_tup_read,
261261
idx_tup_fetch

0 commit comments

Comments
 (0)