Разница между statementtimeout и transactiontimeout в PostgreSQL заключается в том, что первый параметр контролирует выполнение отдельных запросов, а второй — транзакций. 12
statement_timeout устанавливает максимальное время выполнения одного запроса. 1 Если запрос превышает этот лимит, PostgreSQL автоматически отменяет его и возвращает ошибку. 1 Если запрос содержит несколько SQL-операторов, то ограничение применяется к каждому из них отдельно. 1
transaction_timeout, в свою очередь, ограничивает максимальную длительность транзакций. 1 Это касается как явных транзакций (начинающихся с BEGIN), так и неявных (состоящих из одного оператора). 14 Функция автоматически завершает транзакции, которые превышают заданное время, независимо от того, насколько короткими являются содержащиеся в транзакции операторы. 1
Таким образом, statementtimeout фокусируется на отдельных запросах, а transactiontimeout — на транзакциях в целом.