В ИЕРАРХИИ в виртуальных таблицах #690374


#0 by Бешеная Нога
при подготовке к эксперту нашел "материал", что "В ИЕРАРХИИ" в виртуальных таблицах - зло. ибо тот запрос который формируется для выполнения условия "В ИЕРАРХИИ" ни разу не оптимальный. и вроде как правильно сначала получить таблицу элементов из иерархии, а уже потом ее использовать в качестве отбора. и где таблица счетов получается предварительно: замер производительности показывает однинаковые 30 секунд выполнения (второй на 0,15 сек быстрее). значит фигня про "в иерархии"?
#1 by unregistered
Относительно регистра бухгалтерии - фигня. Таблица плана счетов в 99,99% случаев достаточно маленькая. Если бы речь шла об иерархическом справочнике с приличным количеством элементов, то возможно(!) разница была бы более значительной.
#2 by unregistered
+ к поэксперементируй с условиями на значения субконто, например, Номенклатура или Контрагенты (смотря какой справочник поболе).
#3 by Sabbath
а ты попробуй на большем объеме данных (в смысле больше элементов внутри группы) и большей вложенности
#4 by Бешеная Нога
возможно вы и правы. т.е. во втором случае получается "правильный запрос" но выхлопа особо не дает, так как данных относительно мало...
#5 by unregistered
Запрос правильный и там и там. Вопрос только в выигрыше (будет ли он?). На выполнение запроса для отдельного получения таблицы счетов тоже уходит время и накладные расходы на получение результата этого запроса с последующей передачей этого результата обратно на сервер СУБД в качестве параметра основного запроса. Если уж идти по такому (второму) пути, то может целесообразнее пакет запросов делать, чтобы не гонять данные туда-сюда между серверами СУБД и 1С.
#6 by hhhh
это же элементарно, Ватсон. Во втором запросе используется кеш от первого запроса. Попробуйте перезагрузить комп для верности, и потом запустить второй запрос, а за ним первый. И секунды нам выложите.
#7 by WildSery
Просветите, пожалуйста, пакетный запрос выполняется не на сервере СУБД, а гоняется туда-сюда по частям?
#8 by Rovan
нет...на сервере
#9 by Fragster
&Счета - это группа счетов-то хоть?
#10 by Fragster
а еще лучше - список групп счетов
#11 by Fragster
еще есть чит, который иногда срабатывает (не всегда, надо проводить замер на реальных данных):
#12 by H A D G E H O G s
Ты - эксперт? Бугага.
#13 by Бешеная Нога
список групп счетов и счетов ) да точно, ты уже как то про него говорил, тогда реально сработало ))) попробую применить )
#14 by Бешеная Нога
давай. разбей меня в пух и прах своими знаниями.
#15 by Бешеная Нога
в какое соединение выльеться в итоге (в иерархии) в виртуальной таблице?
#16 by Бешеная Нога
выльется
#17 by John83
а в чем прикол?
#18 by Бешеная Нога
в данному случае дало прирост 1с секунду ) все равно запросы почти одинакого выполняются...
#19 by Sammo
В некоторых случаях у меня (несмотря на рекомендации 1с) Где и join отрабатывали быстрее, чем условие на виртуальную таблицу. Но это в РН. По Бухии не готов сказать
#20 by Sammo
В скуле получается не in, а exists, а он работает шустрее
#21 by Бешеная Нога
сейчас тесты.
#22 by Бешеная Нога
запрос в иерархии по регистру бухгалтерии - 47сек запрос в (таблица, с доп полем истина) по регистру бухгалтерии - 46 секунд запрос без условия по регистру бухгалтерии - 36 секунд
#23 by Fragster
еще сделай тест - 1 запрос - выгрузка счетов в массив, 2 - отбор по параметру-массиву
#24 by Бешеная Нога
т.е. в параметр виртуальной таблицы сунуть В (&Массив)?
#25 by mikecool
фигассе... вот это писатели движка )))
#26 by Бешеная Нога
хотя при любом раскладе выигрыш будет максимум 10 секунд из 47... так что...
#27 by samozvanec
так то четверть...
#28 by WildSery
left join никак не может быстрее отрабатывать, чем exists.
#29 by WildSery
Тьфу, наоборот.
#30 by H A D G E H O G s
1) Выбрать 1 запросом все счета из иерархии, если так нетерпиться. 2) Обойти кодом счета, получить всевозможные типы субконто. 3) Захерачить в 1 массив счета, в 2 массив - субконто. 4) Запросить остатки. Другой вопрос, если счетов 100500, тут так делать не надо.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С