28.04.2011, 13:28 | #1 |
Участник
|
Ошибка времени выполнения
Всем привет!
У некоторых пользователей, при попытке войти в аксапту 4.0 появляется infolog: Ошибка: Ошибка времени выполнения: Выполняемая операция генерирует оператор SQL, содержащий большое количество вложенных операторов. Разбейте данную операцию не несколько частей и повторите попытку. Методом проб и ошибок установлено, что на это влияют группы, в которых состоят пользователи. Но, на разных пользователей влияют разные группы и зависимостей не могу пока найти. Если кто сталкивался, то подскажите, пожалуйста, что делать. |
|
28.04.2011, 13:59 | #2 |
Участник
|
Да, встречался с этим несколько лет назад, но на 3.0 (на 4.0 еще ни разу не было). Дело было в собираемых в коде запросах: например, если очень много складов, и многие из них перечислены в виде списка в условиях, то постарайтесь оптимизировать, заменив на диапазон, например: вместо списка "1,2,3,4,5,6,7,8,9" написать "1..9". Например, если это динамически формируемое условие запроса с подобным списком. Но лучше изыскать способ переписать код запроса по-другому.
Насколько помню, программист подобным образом собирал по определенному условию перечень номенклатур и вставлял в запрос. Когда список достигал нескольких сотен, было такое сообщение об ошибке. Есть еще вариант, что у вас для пользователей настроены права доступа на уровне записей (RLS), где в условиях как раз перечислены например склады подобным образом, и их много - тоже попробуйте вместо списка "1,2,3,4,5,6,7,8,9" написать "1..9". У вас используются RLS ? если да, проверьте этот вариант. |
|
|
За это сообщение автора поблагодарили: Poleax (1), Дмитрий--13 (1). |
28.04.2011, 14:26 | #3 |
Модератор
|
Цитата:
Сообщение от Дмитрий--13
Всем привет!
У некоторых пользователей, при попытке войти в аксапту 4.0 появляется infolog: Ошибка: Ошибка времени выполнения: Выполняемая операция генерирует оператор SQL, содержащий большое количество вложенных операторов. Разбейте данную операцию не несколько частей и повторите попытку.
__________________
This posting is provided "AS IS" with no warranties, and confers no rights. |
|
28.04.2011, 17:36 | #4 |
Участник
|
Zabr
Спасибо. Это рлсные группы. НО, дело скорее всего не в этом. Я в процессе поиска причины этой проблемы оставлял всего одну "кривую" группу у юзера и все равно была та же ошибка. Хотя условий в рлс кот наплакал. |
|
28.04.2011, 20:55 | #5 |
Участник
|
Возможно, есть какие-то модификации стандарта по расширению прав доступа? Просто при старте системы, по идее, кроме параметрических таблиц другие данные не должны читаться.
Дайте пользователю права на разработку, после выдачи ошибки, посмотрите в код, в каком месте происходит попытка отправки такого большого запроса - и разбирайтесь по месту.
__________________
Ivanhoe as is.. |
|
|
За это сообщение автора поблагодарили: Дмитрий--13 (1). |
28.04.2011, 23:16 | #6 |
Участник
|
Цитата:
Устранены обе проблемы установкой hotfix rollup 978429. |
|
|
За это сообщение автора поблагодарили: Дмитрий--13 (1). |
20.06.2013, 13:00 | #7 |
Участник
|
Цитата:
Сообщение от Дмитрий--13
Всем привет!
У некоторых пользователей, при попытке войти в аксапту 4.0 появляется infolog: Ошибка: Ошибка времени выполнения: Выполняемая операция генерирует оператор SQL, содержащий большое количество вложенных операторов. Разбейте данную операцию не несколько частей и повторите попытку. Методом проб и ошибок установлено, что на это влияют группы, в которых состоят пользователи. Но, на разных пользователей влияют разные группы и зависимостей не могу пока найти. Если кто сталкивался, то подскажите, пожалуйста, что делать. У нас наблюдалась ошибка на одном терминале запрос отрабатывал - на остальных нет. Удалось устранить через добавление физической памяти на сервер неработающих терминалов. П.с. Вообще, конечно, исправляем навороченный запрос.
__________________
Все в порядке - идем ко дну! (к/ф Экипаж счастливой "Щуки") |
|
|
|