|
RLS и привилегированный режим. | ☑ | ||
---|---|---|---|---|
0
DrLekter
17.06.19
✎
08:10
|
Дано: запрос, получающий остатки по регистру накопления типа остатки. Сравнительно небольшая файловая БД (15 Гб всего). Два пользователя, у одного настроено ограничение на уровне записей на одно из измерений регистра. Запрос выполняется с ключевым словом "РАЗРЕШЕННЫЕ". У первого пользователя (с ограничением) скорость выполнения запроса значительно меньше, чем у второго - все логично.
Выношу запрос в привилегированный общий модуль, убираю "РАЗРЕШЕННЫЕ". Скорость выполнения запроса у ограниченного пользователя существенно увеличивается, но разница все равно остается! Среднее время выполнения отличается примерно втрое. Для чистоты эксперимента проверял на одном и том же пользователе, включая и отключая ему RLS. Создается впечатление, что несмотря на привилегированный режим, какие-то проверки все же происходят. Почему так? Я считал, что в привилегированном режиме RLS вовсе игнорируется. |
|||
1
leonidkorolev
17.06.19
✎
12:04
|
(0) При выполнении на сервере действительно РЛС не отрабатывает, запрос должен выполнятся быстрее. Но при отображении на клиенте для каждой строки будет отрабатывать проверка РЛС, можно ли показывать клиенту эти данные.
|
|||
2
DrLekter
17.06.19
✎
12:21
|
Дело в том, что данные о времени выполнения я взял из замера производительности. Это время относится к строке "Результат = Запрос.Выполнить()", это же сервер.
|
|||
3
leonidkorolev
17.06.19
✎
12:34
|
Наверно особенности файлового режима
|
|||
4
Cyberhawk
17.06.19
✎
13:12
|
Может ты сначала разогреваешь БД, а потом уже второй запрос замеряешь?
|
|||
5
НЕА123
17.06.19
✎
13:18
|
(2)
>Это время относится к строке "Результат = Запрос.Выполнить()" это время раньше было ни о чем. сейчас что-то поменялось? |
|||
6
DrLekter
17.06.19
✎
16:22
|
(5) то есть - ни о чем? Не соответствует действительности?
(4) я делаю несколько замеров поочередно. Ситуация не сильно меняется, в пределах погрешности. |
|||
7
Cyberhawk
17.06.19
✎
16:26
|
В серверной сравни. И огласи платформу и режим совместимости - были там относительно недавно какие-то оптимизации в этом плане.
|
|||
8
DrLekter
18.06.19
✎
06:28
|
В серверной разница порядка 10% всего. Видимо, действительно, файловые особенности. Платформа 8.3.1644, режим совместимости 8.2.16.
|
|||
9
Cyberhawk
18.06.19
✎
09:29
|
Еще бы в файловой на разных режимах совместимости проверил и огласил
|
|||
10
DrLekter
18.06.19
✎
13:00
|
В файловой с аналогичным режимом совместимости среднее время выполнения запроса 0.023 - 0.025 с отключенными ограничениями, 0.08... с включенными.
С режимом совместимости "не использовать" результаты 0.082 и 0.087 соответственно. То есть отличия в скорости почти пропали, как на клиент-серверной, но в режиме совместимости с 8.2.16 запрос без RLS работает примерно втрое быстрее. |
|||
11
Cyberhawk
18.06.19
✎
16:59
|
Не понял. У тебя в файловой без режима совместимости запрос с РЛС стал в три раза медленне работать, чем тот же самый запрос (с РЛС), но в режиме совместимости?
|
|||
12
DrLekter
18.06.19
✎
17:03
|
Нет, с РЛС как раз ситуация не поменялась. Без совместимости замедлился запрос без РЛС и выровнялся по времени с РЛСным.
|
|||
13
Cyberhawk
18.06.19
✎
17:07
|
Жоско че-то
|
|||
14
DrLekter
18.06.19
✎
17:12
|
Я тоже в шоке.
Был бы ещё запросище, а то ведь самые простые. Ну да ладно, в клиент-серверной он ведет себя более предсказуемо, что в одно режиме, что в другом. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |