|
|
|
ODAC - как убрать row exclusive?
|
|||
|---|---|---|---|
|
#18+
Help. Выскакивает блокировка row exclusive, как ее убрать? Дано: 0. Используются компоненты ODAC настройки по умолчанию. OraQuery LockMode=lmNone 1. Таблица справочник клиентов, Clients 2. Таблица черновой обработки прайса PriceDitry(шапка) + PriceDitryL (позиции) 3. Чистовая таблица прайсов Price и PriceL соответственно. 4. Есть процедура WorkPrice в которой правила, обработка, наценка и перенос данных из таблиц PriceDitry в Price Так вот, единственное упоминание таблицы Clients, в процедуре в самом начале в запросе: select d.id,d.procent into L_CLIENT,L_PROCENT from Clients d join PriceDitry pw on pw.id=P_PID and pw.pid=d.id; и далее длинная длинная обработка данных, минут 15-30. Вопросы: Почему при редактировании таблицы Clients происходит блокировка "row exclusive", если редактируешь совершенно другую запись? Как указать, что бы читающие данные из одних строк, не блокировали пишущие другие строки? PS: 1. Триггеров нет 2. Промежуточные коммиты не предлагать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 14:49 |
|
||
|
ODAC - как убрать row exclusive?
|
|||
|---|---|---|---|
|
#18+
AWSVladimir, Как вы узнали что у вас именно row exclusive? AWSVladimirПочему при редактировании таблицы Clients происходит блокировка ..., если редактируешь совершенно другую запись? FK у редактируемых табилиц на блокируемую есть? Надо как-то обеспечивать, чтобы после коммита, вставленные и проверенные на момент вставки ссылки оставались достоверными? Для этого набрасывается блокировка. ceсcия 1 Код: plsql 1. 2. 3. 4. 5. 6. ceсcия 2 Код: plsql 1. 2. 3. 4. 5. 6. ok Код: plsql 1. 2. 3. фиг Код: plsql 1. 2. ok Код: plsql 1. 2. 3. фиг ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 15:33 |
|
||
|
ODAC - как убрать row exclusive?
|
|||
|---|---|---|---|
|
#18+
AWSVladimir Вдогонку. Есть предпложение, что update делается по rowid и в кляузе set упомянут PK таблицы, на которую ссылаются редактируемые записи в другой сессии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 15:42 |
|
||
|
ODAC - как убрать row exclusive?
|
|||
|---|---|---|---|
|
#18+
foreign key referencesКак вы узнали что у вас именно row exclusive? В системе есть мониторинг блокировок, какой запрос, какого пользователя, кого заблокировал с какой блокировкой foreign key referencesFK у редактируемых таблиц на блокируемую есть? Аллилуя!!!! Убрал FK и лочится перестало. Супер!!! Комментировать не буду поведение сервера который на читающий запрос: select d.id,d.procent into L_CLIENT,L_PROCENT from Clients d join PriceDitry pw on pw.id=P_PID and pw.pid=d.id; -- где Clients.id=15 блокирует апдейт другой записи: update Clients set procent=p_proc where id = 22 только из-за FK на Clients Пипец. foreign key references -ОГРОМНОЕ еще раз СПАСИБО!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 21:01 |
|
||
|
ODAC - как убрать row exclusive?
|
|||
|---|---|---|---|
|
#18+
AWSVladimirКомментировать не буду поведение сервера который на читающий запрос: ... блокирует апдейт другой записи: И правильно сделаете, поскольку осознания пока что не наблюдается. Лучше вдумчиво разберите примерчики от сероникого коллеги. Ну и в developers guide загляните. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 02:32 |
|
||
|
ODAC - как убрать row exclusive?
|
|||
|---|---|---|---|
|
#18+
AWSVladimirПипец. Пипец не там. Пипец - тут: AWSVladimirУбрал FK Это сродни лечения головной боли гильотиной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 09:48 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39479787&tid=1885667]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
140ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 459ms |

| 0 / 0 |
