Имя: Пароль:
1C
1С v8
Долго выполняется запрос. 8.2
0 Программисточка
 
28.02.12
18:13
Имеется очень простой, но большой регистр сведений:
независимый, периодичность в пределах секунды, одно измерение и 3 ресурса.
Запрос вида:
ВЫБРАТЬ
   РССрезПоследних.Измерение
ИЗ
   РегистрСведений.РС.СрезПоследних() КАК РССрезПоследних

выполняется 5 секунд, причем нет почти никакой разницы выбираем мы только одно измерение или вместе со всеми ресурсами, хотя по нему же должен быть индекс.
В чем может быть дело и как это исправить?
1 PR
 
28.02.12
18:17
Попробуй выбрать из обычной таблицы и потом сделать левое соединение со срезом
2 PR
 
28.02.12
18:17
Ну и фото ессно :))
3 Программисточка
 
28.02.12
18:33
не помогает... соединение же все равно по этому же измерению идет, выполняется столько же, даже на пару секунд подольше.
мне кажется тут надо индексы заново построить или что-то в этом роде, только не знаю как
4 PR
 
28.02.12
18:34
Попробуй срез сама сделай по реальной таблице.
5 fisher
 
28.02.12
18:36
(0) И какое количество строк возвращает?
6 Программисточка
 
28.02.12
18:45
(5)Возвращает около 100 строк
(4)Получилось нормальное время с помощью "сраза последних вручную", но хочется чтобы срез последних тоже работал
7 fisher
 
28.02.12
18:47
Хм... Файловая?
8 Программисточка
 
28.02.12
18:49
(7) нет
10 Fragster
 
гуру
28.02.12
18:49
(8) постгре? дб2? своя субд с прослойкой в виде эмуляции мсскуля?
11 Программисточка
 
28.02.12
18:51
(10) postgres
12 PR
 
28.02.12
18:55
Срез последних в регистре сведений не будет работать быстрее, типа как в регистре накопления.
13 Программисточка
 
28.02.12
18:57
(12) в смысле так и задумано и вообще-вообще ничего нельзя изменить?
14 Программисточка
 
28.02.12
18:58
а то я пока в администрировании баз данных можно сказать совсем не разбираюсь, меня пока только научили бэкапы делать и восстанавливаться из бэкапов... я думала что можно сделать заново какое-нибудь построение индексов и все будет летать
15 Escander
 
28.02.12
19:06
(0) никаих парамтеров не задаётся? отбираем во всех разрезах на 01.11.3999?
16 fisher
 
28.02.12
19:07
(15) Так у неё всех комбинаций меньше сотни.
17 fisher
 
28.02.12
19:09
Я только одного не понял. Реально "эмуляция" среза последних получилась быстрее что ли? Если верить (6)?
18 Программисточка
 
28.02.12
19:09
(15) вначале было РегистрСведений.РС.СрезПоследних(&Дата), но так даже дольше работало
19 Программисточка
 
28.02.12
19:11
(17) да, "эмуляция" намного быстрее, 0,2 минуты
20 Программисточка
 
28.02.12
19:14
только не совсем все-таки "эмуляция", левое соединение со справочником, в котором, собственно, все 100 значений моего измерения. Причем если этот справочник со СрезомПоследних соединять, то никакой выгоды по скорости нету, а если взять во вложенном запросе максимум по периоду и т.д, то быстрее
21 Escander
 
28.02.12
19:14
Срезы регистров сведений всегда работа с физической таблицей...
там никакие регламентын операции е пора делать/кэши чистить?  Как это с см-скл знаю а как пострге - не в теме...

а в ТЖ какой запрос на сервер уходит?
22 Программисточка
 
28.02.12
19:15
(21) ТЖ это что? я таким, наверное, не умею пользоваться)
23 Программисточка
 
28.02.12
19:16
(21) может и пора какие-нибудь операции делать... хз... надо у предшественника узнать
24 Escander
 
28.02.12
19:18
(20) видимо какое-то попадание в индекс или у оптимизатора статистика слетела
ТЖ - технологиеский журнал
25 Escander
 
28.02.12
19:20
ЭмулЯция это отбираем по всем разрезщам максимум дат менее указаной для всех разрезов во временную таблицу и потов внутреннее с самим собой?
26 Escander
 
28.02.12
19:20
в смысле веменную соединяем с регитром по всем разрезам
27 Escander
 
28.02.12
19:23
если не ошибаюсь у регистра сведений индекс = дата + измерение1 + измерение2 + ...

если в эмуляции поменять местами условия связи может получиться совсем дургое время!
28 Программисточка
 
28.02.12
19:29
ну у меня связь сначала по измерению, потом по периоду, т.е. если я их поменяю, то должно стать еще быстрее
29 Escander
 
28.02.12
19:37
(28) надо пробовать, т.к. есть и дургие моменты, если у измерения свойство индексировать = индексировать - то будет построен ещё 1 индекс...

я-б сделал замер для разных вариантов.
30 Escander
 
28.02.12
19:38
+(29) а как там у вас отрабатвает оптимизатор запроса со стороны базовода - неопнятно, очень похоже, что не с тем индексом он старатемся что-то сделать
31 Escander
 
28.02.12
19:57
По поводу регламента: ТиИ + банальный выгрузить-загрузить как правило решает 90% простых проблем.
32 Программисточка
 
28.02.12
20:17
(31) понятно, спасибо :)
(4) а Вам особенное спасибо, потому что совет помог :)
33 Escander
 
29.02.12
05:35
(32)потом отпишитесь (31) помогло или всё так и осталось.
34 PR
 
29.02.12
09:54
(32) Пожалуйста.
(13) Да, так и задумано. В регистрах накопления виртуальные таблицы — это хранящиеся агрегаты, а в регистре сведений нет.