Имя: Пароль:
1C
1С v8
Оптимизация регистров сведений
, ,
0 Sasha_1CK
 
02.11.17
10:08
Дано.
Вариант 1

РС1
Изм1
Изм2
Изм3
Изм4
Рес1

Вариант 2

РС1
Изм1
Изм2
Рес1

РС2
Изм1
Изм3

РС3
Изм1
Изм3

Запись в регистр - одноразовая.
Чтение из регистра - очень много

При получении информации всегда используется фильтр Изм2, Изм3, Изм4


Вопрос какой вариант будет работать быстрее

запрос с фильтром к одному общему регистру.

или получение данных из 3 регистров в ВТ и внутренне соединение по изм1?
1 youalex
 
02.11.17
10:10
>>При получении информации всегда используется фильтр Изм2, Изм3, Изм4

Эти измерения должны быть в начале.
2 Sasha_1CK
 
02.11.17
10:12
(1)  принято.
3 Мимохожий Однако
 
02.11.17
10:13
Убери ИЗМ1, если не используется
4 MrStomak
 
02.11.17
10:13
(0) Если невозможно поставить в начало, то выбрать среди Изм2, Изм3, Изм4 наиболее селективное измерение и проставить ему флаг индексирования.
5 Sasha_1CK
 
02.11.17
10:15
То есть вариант 1 быстрее 2?
6 эс-образник
 
02.11.17
10:17
Однозначно вариант 1. СУБД это сделает гораздо лучше, чем выборка из нескольких таблиц с соединением.
7 Sasha_1CK
 
02.11.17
10:25
(6) количеством записей в таблице можно пренебречь?

Меня просто смущает что во втором варианте у меня например
в РС1 -  10 записей
в РС2 - 20 записей
В РС3 - 2 записи

А во втором варианте получится в одной таблице - 400 записей
8 Alex_MA
 
02.11.17
10:42
(1)И каждое проиндексировано, чтобы создался составной индекс по полям Изм1, Изм2, Изм3.....
Чтобы не было операции KeyLuukUp
9 тарам пам пам
 
02.11.17
11:32
(7) а вот в этом случае быстрее будет раздельными регистрами - при наличии фильтров выборка из каждого из регистров будет 1-2 строки с поиском по индексу, соединение таких таблиц много времени не займет.

А сводный регистр со всеми комбинациями измерений разрастется крайне быстро.
10 mistеr
 
02.11.17
11:45
Я не понял, если по Изм4 всегда идет отбор, то почему его нигде нет во втором варианте?
11 Sasha_1CK
 
02.11.17
13:04
(10) Это я опечатался.
РС3
Изм1
Изм4
12 Sasha_1CK
 
02.11.17
13:11
(9)
И где грань - за которой 3 регистра становятся быстрее чем 1?
13 Йохохо
 
02.11.17
13:16
(12) если записей и будет около 400 то нигде. И любая оптимизация только во вред и трата времени. Вообще судя по "внутренне соединение по изм1" у Вас изм1 будет в "частых" запросах, а изм234 в отчетах
14 h-sp
 
02.11.17
13:18
(12) ну если меньше миллиона записей, забей тогда. Чего ты заморочился из-за 20 записей?
Независимо от того, куда вы едете — это в гору и против ветра!