Встречается на собеседованиях • сегодня

Как находить нагруженные SQL запросы в БД

Для поиска нагруженных SQL-запросов можно использовать несколько подходов:

  1. Логирование медленных запросов
    В PostgreSQL можно включить логирование запросов, выполняющихся дольше заданного времени:
sql
-- postgresql.conf
log_min_duration_statement = 1000  # логировать запросы >1 сек
  1. EXPLAIN ANALYZE
    Анализ плана выполнения запроса:
sql
EXPLAIN ANALYZE SELECT * FROM large_table WHERE condition;
  1. Системные представления
    В PostgreSQL используйте pg_stat_statements:
sql
SELECT query, total_time, calls 
FROM pg_stat_statements 
ORDER BY total_time DESC 
LIMIT 10;
  1. ORM-специфичные инструменты
    Для Django можно включить SQL-логирование:
python
# settings.py
LOGGING['loggers']['django.db.backends'] = {
    'level': 'DEBUG',
    'handlers': ['console'],
}
  1. Профайлеры БД
    Используйте инструменты вроде pgBadger (PostgreSQL), MySQL Enterprise Monitor или Oracle AWR.

Ключевые метрики для анализа: время выполнения, количество вызовов, потребление CPU, блокировки.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы