Цитата:
Сообщение от
egorych
Еще одна неприятная особенность курсоров в MS заключается в его архитектуре, как блокировочника. Т.е. если вы посылаете на сервер обычный запрос, то после прочтения результатов блокировки исчезают. Если-же вы открываете курсор, то блокировки работаю несколько иначе и задерживаются надолго!
Блокировки при использовании навигационного доступа вызваны не зловредностью системы, а тем что пользователи, в большинстве случаев, обижаются, когда они попросили у сервера выборку, побегали по ней, а в момент попытки редактирования система им выдала сообщение о том что сосед эту запись удалил. Кстати - в SQL 2005 появилась поддержка режима Read Commited Snapshot Isolation, который как раз позволяет отключить блокировку при чтении. Хотя и ценой недовольства пользователей, у которых из под носа удалили запись.

Насколько я понимаю, у вас на проекте была такая ситуация: Была высокая утилизация процессоров сервера БД. Вы сделали предположение что все это вызвано использованием курсоров. В принципе, предположение имеет право на существование. Курсоры и правду дополнительную нагрузку создают (правда, обычно, терпимую). Я, кстати, недавно сам видел как при попытке запуска WMS, смешное количество пользователей создает удивительно большую нагрузку на процессор сервера БД. Возможно - WMS и вправду, скажем, создает множество мелких запросов, что в сочетании с курсорами приводит к непропорциональной нагрузке на процессор сервера БД. Вы заменили MS SQL на Oracle. Нагрузка упала. Был сделан вывод что это из за отсутствия курсоров.
НО: Во первых это только теория. Возможно MS SQL работал медленнее из за каких-то других факторов, которые теперь, пост фактум уже не идентифицировать.
Во вторых - даже если в вашем конкретном случае выигрыш был достигнут из за отказа от использования курсоров, не факт что такой же выигрыш будет достигнут в других случаях, на других версиях Аксапты и другом наборе модулей.
В третьих - курсоры не абсолютное зло. Это просто способ предоставить пользователю больше удобств, ценой дополнительной нагрузки на сервер.
Короче говоря - не надо на курсоры в Аксапте ругаться. Они там не от дурости или ленности разработчиков используются, а просто потому что любые альтернативы с точки зрения пользователей могут еще неудобнее оказаться.