Показать сообщение отдельно
Старый 19.11.2009, 16:11   #18  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,444 / 1781 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Alexanderrrr Посмотреть сообщение
Параметры запуска:
datefrom 01.01.2009, dateto-сегодняшний день, договора отбираются только с нужным нам кодом группы финансирования.
1,2 млн. записей в custtrans
Т.е. фильтр по клиенту не задаёте? Да план запроса прояснил бы ситуацию.

Мне кажется SQLServer пытается сначала выбрать все 1,2 млн. записей из CustTrans а уже потом сцепить их c отфильтрованым по GroupFinancId RContractTable. Попробуйте перевернуть Query верх ногами. Либо ещё вариант: заменить Join на ExistsJoin. А уже потом в цикле выбирать RContractTable.

И ещё увидел у вас в коде
X++:
rangeDimension      = queryRun.query().dataSourceTable(tableNum(CustTrans)).rangeField(fieldId2ext(fieldnum(CustTrans, Dimension),2)).value();
Вы этот фильтр не используете. он пустой во время тестирования?
За это сообщение автора поблагодарили: Alexanderrrr (1).