|
![]() |
#1 |
Moderator
|
Цитата:
Сообщение от egorych
![]() Еще одна неприятная особенность курсоров в MS заключается в его архитектуре, как блокировочника. Т.е. если вы посылаете на сервер обычный запрос, то после прочтения результатов блокировки исчезают. Если-же вы открываете курсор, то блокировки работаю несколько иначе и задерживаются надолго!
![]() Насколько я понимаю, у вас на проекте была такая ситуация: Была высокая утилизация процессоров сервера БД. Вы сделали предположение что все это вызвано использованием курсоров. В принципе, предположение имеет право на существование. Курсоры и правду дополнительную нагрузку создают (правда, обычно, терпимую). Я, кстати, недавно сам видел как при попытке запуска WMS, смешное количество пользователей создает удивительно большую нагрузку на процессор сервера БД. Возможно - WMS и вправду, скажем, создает множество мелких запросов, что в сочетании с курсорами приводит к непропорциональной нагрузке на процессор сервера БД. Вы заменили MS SQL на Oracle. Нагрузка упала. Был сделан вывод что это из за отсутствия курсоров. НО: Во первых это только теория. Возможно MS SQL работал медленнее из за каких-то других факторов, которые теперь, пост фактум уже не идентифицировать. Во вторых - даже если в вашем конкретном случае выигрыш был достигнут из за отказа от использования курсоров, не факт что такой же выигрыш будет достигнут в других случаях, на других версиях Аксапты и другом наборе модулей. В третьих - курсоры не абсолютное зло. Это просто способ предоставить пользователю больше удобств, ценой дополнительной нагрузки на сервер. Короче говоря - не надо на курсоры в Аксапте ругаться. Они там не от дурости или ленности разработчиков используются, а просто потому что любые альтернативы с точки зрения пользователей могут еще неудобнее оказаться. Последний раз редактировалось fed; 21.08.2009 в 12:38. Причина: орфография :) |
|
Теги |
oracle, курсор, производительность, sql server |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|