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

Какие знаешь способы обнаружения проблем медленного запроса к БД

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

  1. Логирование запросов - настройка Hibernate/JPA для логирования SQL с временем выполнения:
java
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
  1. Профилирование JDBC - использование datasource-proxy для мониторинга:
java
@Bean
public DataSource dataSource() {
    return ProxyDataSourceBuilder
        .create(realDataSource())
        .logQueryBySlf4j(SLF4JLogLevel.INFO)
        .build();
}
  1. Метрики через Spring Actuator - мониторинг через /actuator/metrics/hibernate.*

  2. EXPLAIN ANALYZE - анализ плана выполнения запроса прямо в БД

  3. Профайлеры (YourKit, JProfiler) - позволяют увидеть "горячие" SQL-запросы

  4. Slow Query Log - настройка логов медленных запросов на уровне СУБД

Для production лучше комбинировать несколько подходов, начиная с метрик Actuator и логов, а для глубокого анализа использовать профайлеры.

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

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

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

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