|
|
|
|
#1 |
|
Участник
|
Цитата:
Сообщение от fed
Версионник уже давно сделали. Но блокировки все равно нужны для:
1. Предотвращения конфликтов записи 2. Ситуаций, грубо говоря, продажи билетов на поезд. Когда надо обеспечить чтобы между чтением ресурса и его обновлением он был заблокирован и недоступен для обновления другими сессиями. Цитата:
Сообщение от fed
Кроме того, сами по себе эскалация блокировок - не такое уж зло. Если у тебя таблица построчных блокировок разростается в памяти, то каждая новая операция обновления занимает все больше времени, поскольку надо все больше и больше времени искать в таблице блокировок ID текущего объекта. И во многих случаях, эскалация на самом деле повышает производительность работы с БД. Идеальным вариантом, на мой взгляд, была бы возможность отключать эскалацию каким-то хинтом в конкретном запросе, а главное - интерфейс к этому хинту из X++.
Наверно есть и другие способы реализации механизма блокировок, экономно расходующие память и прочие ресурсы БД. Обсуждение куда-то в сторону уходит. ![]() Я имел в виду, что раз другим компаниям удалось создать нормальные механизмы блокировок свободные от эскалации, то майкрософт могла бы уж поднатужиться и разродиться чем-нить подобным. Последний раз редактировалось Logger; 07.06.2011 в 19:21. |
|
|
|
|
#2 |
|
Участник
|
а OCC выключен для этих таблиц? или в данной задаче OCC не поможет?
или там принудительно включен PCC? |
|
|
|
|
#3 |
|
Moderator
|
Цитата:
Сообщение от Logger
Ключевое слово - "памяти". Денис, ты неявно предполагаешь какую то конкретную реализацию механизма блокировок (как я понимаю майкрософтовскую) и говоришь о её недостатках. Если не ошибаюсь оракл хранит инфу о блокировках на диске в самих записях, так что при большом числе блокировок памяти дополнительной не тратится. Работает достаточно шустро.
В оракле информация о блокировках храниться в заголовке блока. Подробности про это рассказаны в http://my-oracle.it-blogs.com.ua/post-239.aspx. Тоже, на самом деле, не идеальный вариант. Во первых - часть полезного пространства блока отъедается под данные о блокировках, во вторых - если ты с числом слотов под данные о блокировках не угадал при создании таблицы, то транзакции точно также блокируются в ожидании места под запись о блокировке, даже если никаких объективных конфликтов блокирования нету... Ну то есть - оба подхода имеют свои плюсы и минусы, в каких-то случаях оракловский подход лучше работает, в каких-то микрософтовский. Хочешь работу без эскалации, будь готов получить какие-то другие грабли взамен... |
|
|
|
| За это сообщение автора поблагодарили: Logger (5). | |
|
|
#4 |
|
Участник
|
Цитата:
Сообщение от fed
Во первых - часть полезного пространства блока отъедается под данные о блокировках, во вторых - если ты с числом слотов под данные о блокировках не угадал при создании таблицы, то транзакции точно также блокируются в ожидании места под запись о блокировке, даже если никаких объективных конфликтов блокирования нету...
Конечно, проблемы возможны. Но все же настройка более гибкая. Можно этим параметром играть. Плюс оперативка более ценная память чем диск. По опыту использования - мы на такие блокировки вроде бы не натыкались. Видимо наш админ угадал с числом слотов под блокировки. Либо значение по умолчанию там удачное стоит. |
|
|
|
|
#5 |
|
Administrator
|
Пожалуй, оставлю здесь ссылку на свою связанную тему:
Нефинансовые перемещения не раскрываются при отмене закрытия
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
|
|
|
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|