@pro100ckat

О чем говорит результат запрса? Или какой вывод можно сделать?

Выполняю следущее.
SELECT 
  query ________________actual_query____________________,
  client_addr client_ip,
  to_char(backend_start, 'YYYY-MM-DD HH:MM:SS') backend_start,
  to_char(query_start, 'YYYY-MM-DD HH:MM:SS') query_start,
  to_char(state_change, 'YYYY-MM-DD HH:MM:SS') state_change,
  wait_event_type wait,
  wait_event wait_event,
  STATE
FROM pg_stat_activity
order by backend_start

В базе имеется процедура, которая обновляет некоторые данные.
После запроса вижу около 260 строчек подряд такого вида.
5e463a8d1189a414560425.jpeg
О чем говорит state = active - запрос до сих пор не завершился и обновление не произошло? О чем говорит wait = lock и wait_event = transaction_id?
Буду очень благодарен за любую помощь!
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ответы на вопрос 2
Melkij
@Melkij
PostgreSQL DBA
О чем говорит state = active - запрос до сих пор не завершился

О том что запрос выполняется.

О чем говорит wait = lock и wait_event = transaction_id?

Ожидаем результат другой транзакции.

которая обновляет некоторые данные

транзакция 1 обновила строку но ещё не завершилась.
транзакция 2 хочет обновить ту же самую строку. Но какие данные она увидит? Те которые ещё не подтвердила транзакция 1 - нельзя. Вдруг транзакция 1 будет rollback? Те которые были до прихода транзакции 1 - тем более нельзя. Потому ждём пока не закончится транзакция 1.

Найдите начало этого хвоста, например вот таким запросом
Ответ написан
@ky0
Миллиардер, филантроп, патологический лгун
Очевидно, вам нужно ознакомиться с документацией к соответствующей вьюхе.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы