Проверяет навыки диагностики производительности БД.
Анализ медленных логов БД (PostgreSQL: log_min_duration_statement).
Мониторинг активных запросов через pg_stat_activity.
Использовать EXPLAIN ANALYZE для подозрительных запросов.
Шаги диагностики:
Включить лог медленных запросов:
-- PostgreSQL
ALTER SYSTEM SET log_min_duration_statement = '1000'; -- Логировать запросы >1 сек
SELECT pg_reload_conf();Поиск активных "тяжёлых" запросов:
SELECT query, state, now() - query_start AS duration
FROM pg_stat_activity
WHERE state = 'active' AND duration > interval '5 seconds';Анализ плана выполнения:
EXPLAIN ANALYZE
SELECT * FROM books WHERE author_id IN (SELECT id FROM authors WHERE name LIKE 'A%');Ищите операции Seq Scan (полный перебор), Nested Loop.
Ручной профилинг в приложении:
// Логировать время выполнения запросов в коде
long start = System.currentTimeMillis();
ResultSet rs = statement.executeQuery();
log.info("Query time: {} ms", System.currentTimeMillis() - start);Вывод: Комбинация логов БД и ручного анализа выявляет узкие места.