"A K" <[EMAIL PROTECTED]> wrote:

1) на каждый такой запрос открывать транзакцию, выполнять запрос, закрывать
транзакцию

или

2) иметь одну общую транзакцию только для чтения, которая будет всегда открыта.

Если транзакция READ COMMITTED, то (2) выгоднее с точки зрения сборки мусора. Если же SNAPSHOT, то вариант (1).

собственно. мой вопрос такой: не плохо ли это, если несколько десятков запросов будут подготовлены (Prepare) и висеть на протяжении времени работы приложения?

Это абсолютно нормально. Кроме того, препарирование запроса к транзакциям явного отношения не имеет, ты можешь сделать препаре в транзакции А, а выполнить в транзакции Б. Препарированные запросы относятся к коннекту, а не к транзакции.


--
Дмитрий Еманов


Ответить