|
|
ВЫРАЗИТЬ() внутри ПВТ регистра бухгалтерии |
☑ |
|
0
pavig
13.03.12
✎
09:54
|
Доборый день, коллеги.
Никак не могу найти информацию... может, подскажете.
Имеем 3 (ТРИ) базы БП 1.5 (довольно нетиповая, но та часть, которую буду рассматривать в дальнейшем, вполне типовая)
Перевели эти базы на 8.2 (тестировали и на 8.2.13, и на 8.2.15.289, разницы особой не было).
Заметили, что оборотка без режима совместимости ОЧЕНЬ долго формируется. Если ставим режим совместимости 8.1, то очень быстро....
Разница по времени на порядок, а то и два порядка.
Углубляясь, было замечено, что оборотка выполняет запрос, который и является проблемным. Запрос имеет особенность: к ВТ Хозрасчетного в ПВТ включена подобная конструкция:
ВЫРАЗИТЬ(Субконто1) КАК Справочник.Номенклатура = ЗначениеОтбора1
Если заменяем конструкцию на
Субконто1 = ЗначениеОтбора1
то все проблемы решаются. То есть и в режиме совместимости с 8.1, и без режима совместимости, запрос формируется одинаково быстро.
Читал на ИТС, но нашел там только информацию, касающуюся ВЫРАЗИТЬ к строке.
Чем можно объяснить подобное поведение системы? Особенностями платформы? И встречался ли кто-нибудь с подобными вещами? И еще: подкиньте ссылочек с информацией по этому вопросу...
Спасибо.
|
|
|
1
pavig
13.03.12
✎
10:12
|
Фрагмент исходного запроса:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ОстаткиИОбороты.Счет КАК Счет,
ПРЕДСТАВЛЕНИЕ(ОстаткиИОбороты.Счет) КАК СчетПредставление,
СуммаНачальныйОстатокДт КАК СуммаНачальныйОстатокДт,
КоличествоНачальныйОстатокДт КАК КоличествоНачальныйОстатокДт
ИЗ
РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , Счет В ИЕРАРХИИ (&Счет),
, Организация = &Организация И Выразить(Субконто1 КАК Справочник.Номенклатура) В ИЕРАРХИИ(&Значение1)) КАК ОстаткиИОбороты
АВТОУПОРЯДОЧИВАНИЕ
Фрагмент оптимального запроса:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ОстаткиИОбороты.Счет КАК Счет,
ПРЕДСТАВЛЕНИЕ(ОстаткиИОбороты.Счет) КАК СчетПредставление,
СуммаНачальныйОстатокДт КАК СуммаНачальныйОстатокДт,
КоличествоНачальныйОстатокДт КАК КоличествоНачальныйОстатокДт
ИЗ
РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , Счет В ИЕРАРХИИ (&Счет),
, Организация = &Организация И Субконто1 В ИЕРАРХИИ(&Значение1)) КАК ОстаткиИОбороты
АВТОУПОРЯДОЧИВАНИЕ
на 8.1 оба запроса выполняются с одинаковой производительностью; на 8.2 первый запрос ужасно тормозит.
|
|
|
2
ptrtss
13.03.12
✎
10:15
|
Классика жанра. Профайлер вам в помощь
|
|
|
3
Fragster
гуру
13.03.12
✎
10:21
|
я думаю, что при "выразить" не используются индексы
|
|
|
4
pavig
13.03.12
✎
10:26
|
(3) значит в 8.1 использовались?
|
|
|
5
pavig
13.03.12
✎
11:01
|
и да, ТиИ делали
(в качестве апа :-)
|
|
|
6
ptrtss
13.03.12
✎
11:05
|
Я вижу совет воспользоваться профайлером и получить ответ на свой вопрос максимум за 5 минут явно не уместен в теме созданной для "просто пообщаться"))) Не буду мешать)
|
|
|
7
pavig
13.03.12
✎
11:23
|
(2), (6) спасибо за совет, пробую, но есть некоторые трудности (скуль только у админов, ТЖ не настроен)
поэтому пока ищу альтернативные подходы: опыт тех, кто уже сталкивался
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший