Имя: Пароль:
1C
 
объединение или выбор когда
, ,
0 DomanM
 
12.01.16
10:14
Есть регистр накопления , измерение факт булево в зависимости его в отчете на скд выводится факт или план, как лучше для производительности делать запрос - объединение или через выбор когда? пример по производительности делать сложно, просто запрос время варьирует и разницы не увидать((
1 ObjectRelation Model
 
12.01.16
10:15
лучше разнести на два регистра, отдельно план, отдельно факт
2 FIXXXL
 
12.01.16
10:15
я за объединение
с ним, как я понял, скулю проще запрос строить
3 DomanM
 
12.01.16
10:18
(1) плана куда меньше чем факта
4 ObjectRelation Model
 
12.01.16
10:19
(3) это ничего не отменяет
5 hhhh
 
12.01.16
10:23
(3) ну в общем тут аксиома: через ВЫБОР в 60 раз медленнее, чем через объединение. Очень легко запоминается, например, делаешь запрос через ВЫБОР КОГДА, он выполняется 30 минут, если сделаешь такой же через ОБЪЕДИНИТЬ, он выполнится за 30 секунд.
6 mehfk
 
12.01.16
10:25
(5) Ровно в 60?
7 DomanM
 
12.01.16
10:26
(5) че то как то совсем не вижу такой закономерности в запросах, уточню у меня в запросе даже через выбор когда будут объединения по условиям, например 6 штук, получается что при объединении их будет 12 к примеру
8 hhhh
 
12.01.16
10:29
(6) ну еще другие факторы накладываются.
9 hhhh
 
12.01.16
10:34
(7) там главное в индекс попасть. Если условие попадает в индекс, то оно будет в сотни раз быстрее выполняться, чем если тупо будет лопатить все записи в базе подряд. ПОэтому условия должны быть максимально простыми, без всяких ИЛИ и ВЫБОРов.
10 DomanM
 
12.01.16
10:42
(9) т е сам планировщик точно не превращает эти выбор когда в объединения?
11 DomanM
 
12.01.16
10:48
(9) всем всем всем мои замер ыпоказали что выбор когда лучше, если запросы запускать по очереди то немного лучше объединение, если подряд то явно лучше выбор когда
12 hhhh
 
12.01.16
10:54
(11) "по очереди" - это ведь "подряд".
13 DomanM
 
12.01.16
10:56
(12) по очереди то одно то другое, подряд сначало несколько раз одно потом несколько раз другое
14 hhhh
 
12.01.16
11:00
(13) тогда "подряд" вообще не смотрите, это просто кеш работает, результат из кеша берется, если один и тот же запрос несколько раз подряд.

запускайте толдько по очереди, то есть понятно, что объединение лучше.
15 DomanM
 
12.01.16
11:06
(14) странно что кэш вообщем сопоставим с временем по очереди, и почему из кеша объединение берется дольше?  я просто про то что аксиома не работает ну прям совсем совсем
16 DomanM
 
12.01.16
12:22
спецов по этим делам нет значит?