Цитата:
Я так понимаю, что это принципиальный подход к Аксапте? Чем же обусловлен такой однозначный выбор?
Хм... Concurrency control и сопутствующие ему блокировки - задача сервера СУБД, а ни как не его клиента.
Другое дело, что в Oracle и MS SQL очень по-разному решены эти задачи.
Так например в MS SQL есть Lock Manager, который отвечает за все блокировки. При каждом обращении к БД lock manager выдает информацию - свободен ли ресурс. Поэтому в MS SQL блокировки - дорогостоящий ресурс. Поэтому в MS SQL и существует такая вещь, как эскалация блокировок.
В Oracle информация о блокировке хранится в самом блоке данных, точнее в его заголовке и никаких дополнительных ресурсов на это хранение не тратится, что позволяет более "расточительно относиться к блокируемым ресурсам". И именно поэтому в Oracle нет надобности в эскалации блокировок.
Если вспомнить про версионность Oracle - то разница в подходах станет еще более значительной.
Теперь про Аксапту - как я понимаю, с целью обеспечить работу приложения как на одной так и на другой СУБД, разработчики вынуждены отказываться от использования специфичных фич той или иной платформы.
То есть, если по классике (читаем Кайта) для Оракла длинные транзакции не есть плохо и решение об длительности транзакции разработчик принимает только на основании того, сколько нужно для лочной функциональности, то в MS SQL длительные транзакции могут обернуться большими проблемами.