Имя: Пароль:
1C
1С v8
ВЫРАЗИТЬ() внутри ПВТ регистра бухгалтерии
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) спасибо за совет, пробую, но есть некоторые трудности (скуль только у админов, ТЖ не настроен)
поэтому пока ищу альтернативные подходы: опыт тех, кто уже сталкивался