Тюнинг производительности запросов
- Автор: Silver
- Просмотров: 32
Оригинал тут
Список таблиц, в которых было больше случаев последовательного сканирования, чем индексированного.
SELECT relname, seq_scan - idx_scan AS too_much_seq, CASE WHEN seq_scan - COALESCE(idx_scan, 0) > 0 THEN 'Missing Index?' ELSE 'OK' END, pg_relation_size(relname::regclass) AS rel_size, seq_scan, idx_scan FROM pg_stat_all_tables WHERE schemaname = 'public' AND pg_relation_size(relname::regclass) > 80000 ORDER BY too_much_seq DESC
Поиск неиспользуемых индексов
SELECT indexrelid::regclass AS idx, relid::regclass AS tbl, 'DROP INDEX ' || indexrelid::regclass || ';' AS drop_statement FROM pg_stat_user_indexes JOIN pg_index USING (indexrelid) WHERE idx_scan = 0 AND indisunique IS FALSE