|
РЛС. Тупит динамический список. Как понять, почему? | ☑ | ||
---|---|---|---|---|
0
bolobol
06.12.19
✎
14:57
|
День добрый!
Имеется РЛС, без него - всё летает, но нет отбора из 100К+ объектов. Делаю выборку, аналогичную "фильтрам" РЛС, получаю вывод списка за долю секунды. Открываю под пользователем с РЛС: 29 - 229 секунд. Что проверять? Что делать? Спасибо! |
|||
1
ДенисЧ
06.12.19
✎
14:59
|
Ловить чрез ТЖ запрос и наслаждаться им.
|
|||
2
FIXXXL
06.12.19
✎
15:15
|
(0) в РЛС "ИЛИ" используется для соединения параметров?
|
|||
3
bolobol
06.12.19
✎
15:20
|
(2) Да, как без них
|
|||
4
fisher
06.12.19
✎
15:20
|
"без него - всё летает, но нет отбора..."
В смысле, нет отбора? |
|||
5
BeerHelpsMeWin
06.12.19
✎
15:22
|
Покажи условие из РЛС.
|
|||
6
bolobol
06.12.19
✎
15:22
|
И шаблон используется: #ПоЗначениямИНаборамРасширенный(
Ограничение: Пользователи Все запрещены, всегда разрешён текущий пользователь (из описания) (4) Нет РЛС-а - нет отбора = доступны все 100К+ записей. |
|||
7
fisher
06.12.19
✎
15:34
|
(6) Ну, у меня стандартный совет. Не использовать типовые РЛС :)
|
|||
8
sqr4
06.12.19
✎
15:36
|
(7) Стоит еще фузину посоветовать
|
|||
9
fisher
06.12.19
✎
15:37
|
Если РЛС простой, но можно на старте из настроек прав пользователя получить список доступных ему объектов и запихать их в параметр сеанса вида "ФаксированныйМассив". Тогда в РЛС достаточно прописать условие на вхождение поля таблицы в этот массив. Будет летать.
|
|||
10
bolobol
06.12.19
✎
15:53
|
Беда-то в том, что типовые РЛС во всех остальных местах нормально отрабатывают, даже там, где не просто Пользователь = ТекущийПользователь, а где доступные физические лица по сотрудникам организаций контролируются.
Но вот там шаблон #ПоЗначениям Шаблон #ПоЗначениямРасширенный (не помню где) - тоже шустр А вот #ПоЗначениямИНаборамРасширенный( - вдруг стал тупить неподетски... |
|||
11
fisher
06.12.19
✎
16:03
|
(10) Дык работа у него такая - тормозить. В доке черным по белому и пишут: "Шаблоны с модификатором РасширенноеИЛИ работают медленнее"
Что, как бы, очевидно. |
|||
12
FIXXXL
06.12.19
✎
16:14
|
(11) "медленнее" мягко сказано... раз в 10 удавалось раскачать скорость запросов при отказе от ИЛИ в РЛС
|
|||
13
Шоколадный глаз
06.12.19
✎
16:17
|
(0) У тебя даже в нике ошибка, как ты кодишь?
|
|||
14
bolobol
06.12.19
✎
16:25
|
Просто запрос (в несколько упрощённом виде) и со всеми ИЛИями выполняется мгновенно
И это через интерпретатор! РЛС же - на уровне платформы - должен же ну раза в два быстрее мгновения тогда работать... Разве нет? Попробую переписать на тупое ВЫБРАТЬ ГДЕ ТекущийПользователь там, там или там, без шаблона, и поищу использование #ПоЗначениямРасширенный, осмотрю примеры нормальной работы. Спасибо. |
|||
15
Fragster
гуру
06.12.19
✎
16:31
|
если новая БСП, то можно поискать в настройке прав что-то типа "Использовать производительный режим РЛС" или что-то типа того. В общем, галочка "не тормозить" в 1с появилась
|
|||
16
Fragster
гуру
06.12.19
✎
16:31
|
побочным эффектом является немгновенный пересчет разрешений
|
|||
17
palsergeich
06.12.19
✎
16:32
|
(14) в первом приближении да, но если рассмотреть детально, то при ЛЮБОМ запросе у тебя все говно из РЛС сначала собирается потом пристраивается сбоку к запросу.
Получаются веселые запросили, особенно когда РЛС дублируется |
|||
18
fisher
06.12.19
✎
16:37
|
(14) > Разве нет?
Нет. Интерпретатор тут не при чем. Запрос выполняет СУБД. Из консоли ты выполняешь просто запрос, а при декларации этого же запроса в динамическом списке на результирующий запрос накладывается логика порционной выборки данных, которую от сложных условий колбасит. |
|||
19
fisher
06.12.19
✎
16:38
|
Да и как правильно сказали, RLS работает не как чистый фильтр ГДЕ, а используется для получения вычисляемого поля доступа, по которому уже производится отбор
|
|||
20
Fragster
гуру
06.12.19
✎
16:40
|
особенно классная штука сортировка по представлениюсправочника, на котором также RLS
|
|||
21
palsergeich
06.12.19
✎
16:42
|
Если сложное условие то реально проще и правильнее ИМХО сделать свой РЛС, интегрировать его с подсистемой УправлениеДоступом, если необходимо, разница при грамотной проектировке до нескольких порядков.
|
|||
22
Fragster
гуру
06.12.19
✎
17:08
|
(21) ну, в новом режиме RLS со сложными условиями сильно лучше
https://its.1c.ru/db/content/bsp312doc/src/_img/f70f478e1b6e20b9515ede357d425389/image2780.png?_=1575473002 https://its.1c.ru/db/bsp312doc#content:73:1:issogl2_разработка_процедур_призаполненииограничениядоступа |
|||
23
fisher
06.12.19
✎
17:37
|
(22) А чего оно делает в "производительном" режиме в двух словах? За счет чего оптимизация?
|
|||
24
Fragster
гуру
06.12.19
✎
17:42
|
(23) ну там вместо прилепливания запроса из шаблона, который меняется в зависимости от заполненных параметров шаблона (он же #ПоЗначениям(...)) прилепляется один более менее стандартный запрос, который обращается к служебному регистру с ключами аналитики, из-за этого получается стабильное количество соединяемых таблиц. побочный эффект - обновление при изменении прав с небольшой задержкой.
|
|||
25
fisher
06.12.19
✎
18:12
|
(24) Т.е. они наконец-то реализовали предрасчет ключей аналитики, вместо того чтобы вычислять их в каждом RLS снова и снова? Аллилуйя.
|
|||
26
palsergeich
06.12.19
✎
21:33
|
(25) угу, они взяли идею из ДО и переложили на БСП, в ДО ключи доступа уже давненько
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |