Имя: Пароль:
1C
1С v8
Запрос выполняется с разной скоростью под разными правами
0 wsxedc83
 
07.06.14
23:16
Имеется бухгалтерия сельскохозяйственного предприятия. В ней есть в общем модуле запрос:

ТекстЗапроса =
        "ВЫБРАТЬ
        |    ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК СубконтоКт1,
        |    ХозрасчетныйДвиженияССубконто.СубконтоКт2 КАК СубконтоКт2,
        |    СУММА(ХозрасчетныйДвиженияССубконто.КоличествоКт) КАК КоличествоКт,
        |    СУММА(ХозрасчетныйДвиженияССубконто.Сумма) КАК Сумма
        |ИЗ
        |    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&ДатаНач, &ДатаКон, Регистратор = &Регистратор И (НЕ СчетКт = &СчетГТД)) КАК ХозрасчетныйДвиженияССубконто
        |
        |СГРУППИРОВАТЬ ПО
        |    ХозрасчетныйДвиженияССубконто.СубконтоКт1,
        |    ХозрасчетныйДвиженияССубконто.СубконтоКт2";

- этот запрос выполняется меньше секунды под пользователем у которого установлено право "Полные права", и более 6 секунд - под пользователем у которого такой галочки в правах нет.
Удалял/создавал пользователей.
Тестировал и исправлял базу. Единственное что выводится:
"Объект изменен: Пользователи информационной базы
Изменена структура таблиц базы данных"
CheckDbFl - без толку.
Куда копать???
1 Euguln
 
07.06.14
23:35
ВЫБРАТЬ РАЗРЕШЕННЫЕ
какой эффект дает?
2 Факер_S
 
07.06.14
23:43
дык РЛС вестимо
3 Necessitudo
 
08.06.14
01:04
Все же правильно
4 Armando
 
08.06.14
01:05
Так и должно быть
5 wsxedc83
 
08.06.14
01:07
(1) ВЫБРАТЬ РАЗРЕШЕННЫЕ действительно ускоряет работу! А почему???
6 wsxedc83
 
08.06.14
01:08
(2) Как с ним работать?
7 wsxedc83
 
08.06.14
01:09
(3) Почему? У меня константа ИспользоватьОграниченияПравДоступаНаУровнеЗаписей = Ложь, следовательно - как бы по идее права доступа вообще не должны контролироваться при запросах к регистру, нет?
8 wsxedc83
 
08.06.14
01:09
(1) К сожалению, конфа типовая и в рабочей базе оставить "ВЫБРАТЬ РАЗРЕШЕННЫЕ" не могу. Как быть?
9 Armando
 
08.06.14
01:14
10 Necessitudo
 
08.06.14
01:17
(7) а ты посмотри на текст рлс)
11 wsxedc83
 
08.06.14
01:22
(10)
Текст РЛС при доступе к регистру "Хозрасчетный":
НЕ &ИспользоватьОграниченияПравДоступаНаУровнеЗаписей
    ИЛИ 1 В
        (ВЫБРАТЬ ПЕРВЫЕ 1
            1
        ИЗ
            РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
        ГДЕ
            ТекущаяТаблица.Организация = НастройкиПравДоступаПользователей.ОбъектДоступа
            И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
            И НастройкиПравДоступаПользователей.Пользователь В (&ГруппыТекущегоПользователя))
12 Aleksey
 
08.06.14
01:59
(1) Никакого она эффекта не даст
13 Web00001
 
08.06.14
09:58
(12)тем не менее(5)
14 Мимохожий Однако
 
08.06.14
10:16
(5)Попробуй не копии и прими решение.
15 rphosts
 
08.06.14
11:30
(11) т.к.:
1.не понятно у тебя типовая или переписанная вдоль и поперёк конфа (в т.ч. логика обработки заполнения и самого значения параметра сеанса ИспользоватьОграниченияПравДоступаНаУровнеЗаписей могло быть изенено).
2.Не понятно что за модуль, он случайно не в привелегированном режиме выполняется иногда, а иногда в обячном?

Короче, в отладчике смотри на текст запроса перед выполнением под разными пользователями... если будет различаться - в этом всё и дело.
16 Эмбеддер
 
08.06.14
11:55
а вообще доступ на уровне записей используется?
в файловом режиме с включенным RLS вообще невозможно работать из-за тормозов
17 Diversus
 
08.06.14
16:12
Попробуй перед выполнение УстановитьПривелигированныйРежим(Истина)
Что по скорости будет?
18 iHell
 
08.06.14
16:28
Напомните склерознику - чем больше ролей у пользователя, тем дольше анализ на разрешено/запрешено ?