Имя: Пароль:
1C
1С v8
v8 Оптимизация запроса
0 Homer
 
07.04.14
13:41
///////
ВЫБРАТЬ
    Хозрасчетный.Ссылка
ПОМЕСТИТЬ мСписокСчетов
ИЗ
    ПланСчетов.Хозрасчетный КАК Хозрасчетный
ГДЕ
    Хозрасчетный.Ссылка В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПрочимиПоставщикамиИПодрядчиками))
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ХозрасчетныйОстатки.Счет,
    ХозрасчетныйОстатки.Субконто1,
    ХозрасчетныйОстатки.Субконто2,
    ХозрасчетныйОстатки.СуммаОстаток,
    ХозрасчетныйОстатки.Организация
ПОМЕСТИТЬ мСписание
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&Дата, МЕСЯЦ), СЕКУНДА, 1), , &ВидСубконта, Организация = &Организация) КАК ХозрасчетныйОстатки
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ мСписокСчетов КАК мСписокСчетов
        ПО ХозрасчетныйОстатки.Счет = мСписокСчетов.Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ХозрасчетныйОстаткиИОбороты.Регистратор,
    ХозрасчетныйОстаткиИОбороты.ПериодСекунда КАК Период,
    ХозрасчетныйОстаткиИОбороты.Счет,
    ХозрасчетныйОстаткиИОбороты.Субконто1,
    ХозрасчетныйОстаткиИОбороты.Субконто2,
    ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток КАК КоличествоНачальныйОстаток,
    ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК КоличествоПриход,
    ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК КоличествоРасход,
    ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК КоличествоКонечныйОстаток,
    ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК КоличествоЭталон,
    ХозрасчетныйОстаткиИОбороты.Организация,
    ВЫБОР
        КОГДА ХозрасчетныйОстаткиИОбороты.СуммаОборотДт > 0
            ТОГДА ХозрасчетныйОстаткиИОбороты.Регистратор
        ИНАЧЕ НЕОПРЕДЕЛЕНО
    КОНЕЦ КАК ДокументОприходования
ПОМЕСТИТЬ мТабОбщая
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
            ,
            КОНЕЦПЕРИОДА(&Дата, МЕСЯЦ),
            Авто,
            Движения,
            Счет В
                (ВЫБРАТЬ РАЗЛИЧНЫЕ
                    Таб.Ссылка
                ИЗ
                    мСписокСчетов КАК Таб),
            &ВидСубконта,
            ) КАК ХозрасчетныйОстаткиИОбороты
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ мСписание КАК мОстатки
        ПО ХозрасчетныйОстаткиИОбороты.Счет = мОстатки.Счет
            И ХозрасчетныйОстаткиИОбороты.Организация = мОстатки.Организация
            И ХозрасчетныйОстаткиИОбороты.Субконто1 = мОстатки.Субконто1
            И ХозрасчетныйОстаткиИОбороты.Субконто2 = мОстатки.Субконто2
;
///////

где
    ВидСубконта = Новый Массив;
    ВидСубконта.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты);
    ВидСубконта.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры);

можно ли увеличить скорость запроса
1 Maxus43
 
07.04.14
13:42
идексируй ВТ по полям соединений и условий
2 Wobland
 
07.04.14
13:43
день третий. я волнуюсь за знаки вопроса. отменили
3 Maxus43
 
07.04.14
13:44
Счет В
                (ВЫБРАТЬ РАЗЛИЧНЫЕ
                    Таб.Ссылка
                ИЗ
                    мСписокСчетов КАК Таб),
лишнее, у тебя уже отобрано по счетам в втСписание, хотя замерить надо конечно...
4 Homer
 
07.04.14
13:47
по замерам так быстрее
5 Maxus43
 
07.04.14
13:48
ИНдексирование должно прибавить скоростюшки
6 Homer
 
07.04.14
13:50
(5) Прибавило, но мало ((
7 Aloex
 
07.04.14
13:54
Начало периода укажи.
8 Aloex
 
07.04.14
13:54
КОНЕЦПЕРИОДА(&Дата, МЕСЯЦ) исправь на входящий параметр.
9 Maxus43
 
07.04.14
13:55
остатки и обороты - тормозная сама по себе.

Попробуй левое сединение ещё вместо внутренне, в последнем запросе. к мОстатки левым соединением таблицу цепляй
10 Aloex
 
07.04.14
13:57
Попробуй разнести по временным таблицам ОстаткиИОбороты. Сделай не к ОстаткиИОбороты а через временную таблицу.
11 Aloex
 
07.04.14
13:58
Максимально задействуй параметры виртуальной таблицы.
12 SherifSP
 
07.04.14
14:05
А как индексировать поле в запросе?
13 Homer
 
07.04.14
14:08
Наложил более выборочное условие на "мСписокСчетов" и все гуд стало.
ВСЕМ СПАСИБО
14 Maxus43
 
07.04.14
14:13
(12) поля временных таблиц можно индексировать
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.