8.1 Запрос. Оптимизация

unknown181538

НеГуру
28.12.2008
1 417
0
#1
Есть запрос:
<!--shcode--><pre><code class='1С'>Запрос.Текст = "ВЫБРАТЬ
| Д*цензура*60.Субконто1 КАК СубконтоКонтрДт,
| Д*цензура*60.Субконто3 КАК СубконтоДокДт,
| Кредит60.Субконто1 КАК Контрагент,
| Кредит60.Субконто3 КАК СубконтоДокКт,
| Кредит60.СуммаОборотКт КАК ОборотКт,
| Д*цензура*60.СуммаОборотДт КАК ОборотДт,
| Д*цензура*60.КорСубконто3 КАК ПлПор,
| Д*цензура*60.КорСубконто3.Номер КАК НомерПл,
| Д*цензура*60.КорСубконто3.Дата КАК ДатаПл,
| Д*цензура*60.Субконто2 КАК ДоговорДт,
| Кредит60.Субконто2 КАК Договор,
| Кредит60.Субконто3.СуммаДокумента КАК СуммаПост,
| Кредит60.Субконто3.Номер КАК НомерПост,
| Кредит60.Субконто3.Дата КАК ДатаПост,
| Кредит60.Субконто3.Ссылка КАК СсылкаПост,
| СчетФактураПолученный.Ссылка КАК СФ,
| СчетФактураПолученный.ДокументОснование,
| СчетФактураПолученный.Номер КАК НомерСФ,
| СчетФактураПолученный.Дата КАК ДатаСФ
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНач, &ДатаКон, , Счет.Код = ""60.01"", , , , ) КАК Кредит60
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНач, &ДатаКон, , Счет.Код = ""60.01"", , , , ) КАК Д*цензура*60
| ПО Кредит60.Субконто3 = Д*цензура*60.Субконто3
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураПолученный КАК СчетФактураПолученный
| ПО Кредит60.Субконто3 = СчетФактураПолученный.ДокументОснование"+
?(НетСФ," ГДЕ
| СчетФактураПолученный.Ссылка ЕСТЬ NULL "+
?(ЗначениеЗаполнено(Контрагент)," И Кредит60.Субконто1 = &Контрагент",""),?(ЗначениеЗаполнено(Контрагент)," ГДЕ Кредит60.Субконто1 = &Контрагент",""))+
" СГРУППИРОВАТЬ ПО
| Кредит60.Субконто1,
| Кредит60.Субконто3,
| Д*цензура*60.Субконто1,
| Д*цензура*60.Субконто3,
| Кредит60.СуммаОборотКт,
| Д*цензура*60.СуммаОборотДт,
| Д*цензура*60.Субконто2,
| Кредит60.Субконто2,
| Д*цензура*60.КорСубконто3,
| Кредит60.Субконто3.СуммаДокумента,
| Кредит60.Субконто3.Номер,
| Кредит60.Субконто3.Дата,
| Кредит60.Субконто3.Ссылка,
| СчетФактураПолученный.Ссылка,
| СчетФактураПолученный.ДокументОснование,
| СчетФактураПолученный.Номер,
| СчетФактураПолученный.Дата";[/CODE]
База большая и выполняется очено медленно. Ни у кого нет предложенй?
 

vitfil

IT-интегратор
02.04.2004
2 062
0
#2
У меня есть предложение: уменьшить размер секции ORDER BY
 

puh14

Well-known member
11.07.2008
1 412
0
#3
Переделать через ADO - но не факт что шибко быстрее будет.
 

unknown181538

НеГуру
28.12.2008
1 417
0
#4
У меня есть предложение: уменьшить размер секции ORDER BY
Нету у меня такой секции. Если Вы имеете ввиду GROUP BY, то при попытке ее уменьшить возникают ошибки "Поле не входит в группу" даже по полям не учавствующим в объединении.
 

unknown181538

НеГуру
28.12.2008
1 417
0
#5
Написал немножко другой отчет, со сходным результатом
<!--shcode--><pre><code class='1C'>"ВЫБРАТЬ
| ХозрасчетныйОстатки.Субконто2.СуммаДокумента КАК ОборотКт,
| ХозрасчетныйОстатки.Субконто2.Номер КАК НомерПост,
| ХозрасчетныйОстатки.Субконто2.Дата КАК ДатаПост,
| ХозрасчетныйОстатки.Субконто2.Ссылка КАК СсылкаПост,
| ХозрасчетныйОстатки.Субконто2.Контрагент КАК Контрагент,
| ХозрасчетныйОстатки.Субконто2.ДоговорКонтрагента КАК Договор,
| ХозрасчетныйОборотыДтКт.СубконтоКт3.Номер КАК НомерПл,
| ХозрасчетныйОборотыДтКт.СубконтоКт3.Дата КАК ДатаПл,
| ХозрасчетныйОборотыДтКт.СубконтоКт3.Ссылка КАК ПлПор,
| СчетФактураПолученный.Номер КАК НомерСФ,
| СчетФактураПолученный.Дата КАК ДатаСФ
| ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(&КонПер, Счет.Ссылка В ИЕРАРХИИ (&Сч19),
,(Субконто2.Дата МЕЖДУ &НачПер И &КонПер) "+?(сзКонтрагенты.Количество()>0,"И (Субконто1 В ИЕРАРХИИ (&сзКонтрагенты))","")+
") КАК ХозрасчетныйОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НАчПер, &КонПер, , СчетДт.Ссылка = &Сч601, , СчетКт.Ссылка = &Сч602, , ) КАК ХозрасчетныйОборотыДтКт
| ПО ХозрасчетныйОстатки.Субконто2 = ХозрасчетныйОборотыДтКт.СубконтоДт3
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураПолученный КАК СчетФактураПолученный
| ПО ХозрасчетныйОстатки.Субконто2 = СчетФактураПолученный.ДокументОснование "+
//" ГДЕ СчетФактураПолученный.Дата >&НачПер "+
?(НетСФ," ГДЕ
| СчетФактураПолученный.Ссылка ЕСТЬ NULL ","");[/CODE]
Можно ли его ускорить сделав, чтобы счета-фактуры перебирались только с некоторой даты. При этом поставить условие не годится, т.к. Null-результаты тоже нужно. (Причем они как раз нужны больше)
 

unknown181538

НеГуру
28.12.2008
1 417
0
#7