![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Commit и CommitRetaining [D7, IB6.x]
cherrex © (2005-02-24 18:45:00)В чем отличие Commit от CommitRetaining
Sergey13 (2005-02-25 14:43:00) [1]2[5] Sergey_Masloff (25.02.05 14:30)
Ну дык и работа продолжается.
Sergey_Masloff (2005-02-25 14:30:00) [2]Sergey13 © (25.02.05 11:52) [4]
>Почему? Если транзакция подтверждена, то пофигу, ИМХО, если >такая же стартовала заново.
При Retaining не по фиг. Остаются все области памяти распределенные под курсоры, остаются сами курсоры и сборка мусора откладывается.
Sergey13 (2005-02-25 11:52:00) [3]2[3] DSKalugin © (25.02.05 11:28)
> Вообще длинноиграющие транзакции вредны
Я бы добавил пишущие.
>а сдругой - плохо потому что накапливается в БД много версий и собирается мусор.
Почему? Если транзакция подтверждена, то пофигу, ИМХО, если такая же стартовала заново.
ИМХО, "долгоиграемость" транзакций слабо связана с Commit или CommitRetaining.
DSKalugin (2005-02-25 11:28:00) [4]Commit закрывает связанные с транзакцией наборы данных и на этом транзакция считается законченной (подтвержденной)
а CommitRetaining - не закрывает НД, а лишь подтверждает изменения и продолжает работать дальше. Транзакция не заканчивается а продолжает существовать дальше.
С одной стороны это хорошо т.к. не надо переоткрывать НД, а сдругой - плохо потому что накапливается в БД много версий и собирается мусор. Вообще длинноиграющие транзакции вредны. Надо это избегать.
Подробности и лекции ищите тут ibase.ru
Sergey_Masloff (2005-02-24 20:49:00) [5]Ну в смысле что такое контекст транзакции, я думаю, ясно?
Sergey_Masloff (2005-02-24 20:44:00) [6]CommitRetaining с сохранением контекста транзакции.