Страница 1 из 1

AutoCommit

Добавлено: 11 апр 2005, 06:34
SAMZ
Уважаемые коллеги!
ПРосматривая переписку на форуме я видел мнение о том, что в 90 случаев из 100 AutoCommit враг разработчика. Может кто-нибудь намекнет, почему. Я в достаточно большом числе приложений использую библиотеку FIBPlus и в экземплярах TpFIBDataSet, как правило, устанавливаю AutoCommit. При количестве коннектов, до 80 и размере БД около 1 Гб неприятностей пока не было, но хотелось бы знать откуда она крадется.

Добавлено: 11 апр 2005, 10:21
kdv
"враг" в первую очередь потому, что транзакции вообще должны быть увязаны с бизнес-логикой. автокоммит же просто тупо немедленно сохраняет любые изменения, причем "в недрах". я допускаю автокоммит только в случае двух транзакций, прицепленных к pFIBDataSet.

насчет неприятностей - см. IBAnalyst, в версии 1.78 есть калькулятор транзакций, который позволяет определить, много их стартует или мало.

кроме того часто автокоммит идет в CommitRetaining, а это тоже зло.

Добавлено: 11 апр 2005, 10:58
SAMZ
kdv писал(а):"враг" в первую очередь потому, что транзакции вообще должны быть увязаны с бизнес-логикой. автокоммит же просто тупо немедленно сохраняет любые изменения, причем "в недрах". я допускаю автокоммит только в случае двух транзакций, прицепленных к pFIBDataSet.

насчет неприятностей - см. IBAnalyst, в версии 1.78 есть калькулятор транзакций, который позволяет определить, много их стартует или мало.

кроме того часто автокоммит идет в CommitRetaining, а это тоже зло.
Все понятно. Хочу сказать, что во всех случаях, когда использую AutoCommit TpFIBDataSet работает в контексте двух транзакций. По увязке с бизнес логикой тоже все понятно. Дополнительно хотел бы спросить порблемность CommitRetaining в 1.5.2 снята или нужно проявлять осторожность

Добавлено: 11 апр 2005, 11:01
kdv
проблемность CommitRetaining в 1.5.2 снята
это как, простите? нигде она не снята и не будет снята. Просто от него надо избавляться, и все.

Добавлено: 12 апр 2005, 06:42
Klyk
CommitRetaining, а это тоже зло.
А почему?

Добавлено: 12 апр 2005, 11:40
kdv
а потомушто транзакция очень длинная получается. а RC у нас пока временами действует как snapshot. соответственно удерживаются версии, и т.п. То есть, ничего хорошего в commitretaining нет. а для транзакций snapshot он вообще имеет мало смысла.