Sobes.tech
Назад к вопросам
Junior — Middle
67

Как узнать выполненный SQL-запрос в PostgreSQL?

Компании, где спрашивали
Т-БанкТ-Банк

Ответ от нейросети

sobes.tech AI

Чтобы узнать выполненный SQL-запрос в PostgreSQL из Java-приложения, можно использовать несколько подходов:

  1. Логирование на стороне PostgreSQL:

    • Включить логирование запросов в конфигурации PostgreSQL (postgresql.conf), например, log_statement = 'all'.
    • Логи будут содержать все выполненные запросы.
  2. Логирование на стороне Java:

    • Использовать библиотеки для логирования SQL, например, P6Spy или datasource-proxy, которые перехватывают и логируют все SQL-запросы, выполняемые через JDBC.
  3. Вывод запроса перед выполнением:

    • Если запрос строится динамически, можно вывести его в лог перед выполнением.
  4. Использование PostgreSQL функции pg_stat_activity:

    • Можно выполнить запрос к системной таблице pg_stat_activity, чтобы увидеть текущие активные запросы.

Пример запроса к pg_stat_activity:

SELECT pid, query, state, query_start
FROM pg_stat_activity
WHERE state = 'active';

Таким образом, для отладки и мониторинга SQL-запросов в Java с PostgreSQL лучше всего использовать логирование на уровне драйвера или базы данных.