Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Индекс в запросе

Индекс в запросе
Я
   lirt82
 
03.04.19 - 13:11
Народ подскажите, есть самописный отчет на СКД он выполняется больше 15 минут, даже если в параметре укажем 1 день, по какому полю предпочтительнее сделать Индекс чтоб быстрее отрабатывал? пока сделал по ЗаказПоставщику, но без изменении также больше 15 минут отчет формируется по 1 дню в параметре.

ВЫБРАТЬ
    ЗакрытиеЗаказовПоставщикам.Ссылка КАК Статус,
    ЗаказПоставщикуТовары.Ссылка.УтвержденФинансы КАК УтвержденоФинОтдел,
    ЗаказПоставщикуТовары.Ссылка КАК ЗаказПоставщику,
    ЗаказПоставщикуТовары.Ссылка.ДокументОснование.Автор КАК АвторВнутреннегоЗаказа,
    ЗаказПоставщикуТовары.Ссылка.Контрагент,
    ЗаказПоставщикуТовары.Ссылка.ДокументОснование.Ссылка КАК ВнутреннийЗаказ,
    ЗаказПоставщикуТовары.Номенклатура.Код КАК Код,
    ЗаказПоставщикуТовары.Номенклатура КАК Номенклатура,
    ЗаказПоставщикуТовары.Проект,
    ЗаказПоставщикуТовары.Количество,
    ВЫБОР
        КОГДА ЗаказПоставщикуТовары.Ссылка.ВалютаДокумента.Код = "398"
            ТОГДА ЗаказПоставщикуТовары.Сумма
    КОНЕЦ КАК СтоимостьKZT,
    ЗаказПоставщикуТовары.Ссылка.Ссылка КАК Док,
    ВЫБОР
        КОГДА НЕ ЗаказПоставщикуТовары.Ссылка.ВалютаДокумента.Код = "398"
            ТОГДА ЗаказПоставщикуТовары.Ссылка.КурсВзаиморасчетов * ЗаказПоставщикуТовары.Сумма
    КОНЕЦ КАК СтоимостьВВалюте
ПОМЕСТИТЬ втТоварыИУслуги
ИЗ
    Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗакрытиеЗаказовПоставщикам КАК ЗакрытиеЗаказовПоставщикам
        ПО ЗаказПоставщикуТовары.Ссылка.Ссылка = ЗакрытиеЗаказовПоставщикам.ДокументОснование.Ссылка
ГДЕ
    ЗаказПоставщикуТовары.Ссылка.Проведен = ИСТИНА
    И ЗаказПоставщикуТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ЗакрытиеЗаказовПоставщикам.Ссылка,
    ЗаказПоставщикуУслуги.Ссылка.УтвержденФинансы,
    ЗаказПоставщикуУслуги.Ссылка,
    ЗаказПоставщикуУслуги.Ссылка.ДокументОснование.Автор,
    ЗаказПоставщикуУслуги.Ссылка.Контрагент,
    ЗаказПоставщикуУслуги.Ссылка.ДокументОснование.Ссылка,
    ЗаказПоставщикуУслуги.Номенклатура.Код,
    ЗаказПоставщикуУслуги.Номенклатура,
    ЗаказПоставщикуУслуги.Проект,
    ЗаказПоставщикуУслуги.Количество,
    ВЫБОР
        КОГДА ЗаказПоставщикуУслуги.Ссылка.ВалютаДокумента.Код = "398"
            ТОГДА ЗаказПоставщикуУслуги.Сумма
    КОНЕЦ,
    ЗаказПоставщикуУслуги.Ссылка.Ссылка,
    ВЫБОР
        КОГДА НЕ ЗаказПоставщикуУслуги.Ссылка.ВалютаДокумента.Код = "398"
            ТОГДА ЗаказПоставщикуУслуги.Ссылка.КурсВзаиморасчетов * ЗаказПоставщикуУслуги.Сумма
    КОНЕЦ
ИЗ
    Документ.ЗаказПоставщику.Услуги КАК ЗаказПоставщикуУслуги
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗакрытиеЗаказовПоставщикам КАК ЗакрытиеЗаказовПоставщикам
        ПО ЗаказПоставщикуУслуги.Ссылка.Ссылка = ЗакрытиеЗаказовПоставщикам.ДокументОснование.Ссылка
ГДЕ
    ЗаказПоставщикуУслуги.Ссылка.Проведен = ИСТИНА
    И ЗаказПоставщикуУслуги.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон

ИНДЕКСИРОВАТЬ ПО
    ЗаказПоставщику
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВЫБОР
        КОГДА втТоварыИУслуги.Статус ЕСТЬ NULL
            ТОГДА "Открыт"
        ИНАЧЕ "Закрыт"
    КОНЕЦ КАК Статус,
    втТоварыИУслуги.УтвержденоФинОтдел,
    втТоварыИУслуги.ЗаказПоставщику,
    втТоварыИУслуги.АвторВнутреннегоЗаказа,
    втТоварыИУслуги.Контрагент,
    втТоварыИУслуги.ВнутреннийЗаказ,
    втТоварыИУслуги.Код,
    втТоварыИУслуги.Номенклатура,
    ЗакупкиОбороты.Регистратор.Дата КАК ДатаПоступления,
    втТоварыИУслуги.Проект,
    втТоварыИУслуги.Количество,
    втТоварыИУслуги.СтоимостьKZT,
    втТоварыИУслуги.СтоимостьВВалюте
ИЗ
    втТоварыИУслуги КАК втТоварыИУслуги
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Закупки.Обороты(, , Запись, ) КАК ЗакупкиОбороты
        ПО (ВЫБОР
                КОГДА ЗакупкиОбороты.Регистратор ССЫЛКА Документ.Сторнирование
                    ТОГДА ЗакупкиОбороты.Регистратор.ДокументОснование.Сделка = втТоварыИУслуги.ЗаказПоставщику
                ИНАЧЕ ЗакупкиОбороты.Регистратор.Сделка = втТоварыИУслуги.ЗаказПоставщику
            КОНЕЦ)
ГДЕ
    втТоварыИУслуги.Док.Дата МЕЖДУ &ДатаНач И &ДатаКон

СГРУППИРОВАТЬ ПО
    втТоварыИУслуги.АвторВнутреннегоЗаказа,
    втТоварыИУслуги.Контрагент,
    втТоварыИУслуги.ВнутреннийЗаказ,
    втТоварыИУслуги.Код,
    втТоварыИУслуги.Номенклатура,
    втТоварыИУслуги.Проект,
    втТоварыИУслуги.Количество,
    втТоварыИУслуги.УтвержденоФинОтдел,
    втТоварыИУслуги.ЗаказПоставщику,
    ЗакупкиОбороты.Регистратор.Дата,
    ВЫБОР
        КОГДА втТоварыИУслуги.Статус ЕСТЬ NULL
            ТОГДА "Открыт"
        ИНАЧЕ "Закрыт"
    КОНЕЦ,
    втТоварыИУслуги.СтоимостьKZT,
    втТоварыИУслуги.СтоимостьВВалюте
 
 
   catena
 
1 - 03.04.19 - 13:16
Ооо, беги, дядь Мить
   piter3
 
2 - 03.04.19 - 13:17
Убрать где и купить уже азбуку,индексер)))
   1Сергей
 
3 - 03.04.19 - 13:17
(0) ты соединяешь все обороты по РН закупки со своей ВТ. Это узкое место. Может, можно всё-таки фильтрануть по периоду?
   lirt82
 
4 - 03.04.19 - 13:20
(3) да я знаю, в том то и дело что нужно по всему регистру.
   Rr1
 
5 - 03.04.19 - 13:21
ПО ЗаказПоставщикуТовары.Ссылка.Ссылка 

Зачем 2 раза Ссылка
   Ник080808
 
6 - 03.04.19 - 13:21
(0) ".Ссылка.Ссылка" - я ссылка ссылка ссылка, я вовсе не медведь
   lirt82
 
7 - 03.04.19 - 13:22
читаю Хрусталеву:)
   1Сергей
 
8 - 03.04.19 - 13:29
(4) ну и раз уж ты детализируешь до записи, то виртуальная таблица (Обороты) тут, как бы, вообще ни к чему
   serg-lom89
 
9 - 03.04.19 - 13:31
лучше сразу отобрать твои заказы,документы сами без табличных частей.
Поместить во временную таблицу их(ВТ_1).
Потом соединить их с твоими табличными частями.
тоже в во временную таблицу загнать(ВТ_2).
через точку меньще сделать там где на валюту проверяешь тоже можно через параметры сделать(в ВТ_1)
   lirt82
 
10 - 03.04.19 - 13:35
(9) все понял:)
   serg-lom89
 
11 - 03.04.19 - 13:38
ПО (ВЫБОР 
                КОГДА ЗакупкиОбороты.Регистратор ССЫЛКА Документ.Сторнирование 
                    ТОГДА ЗакупкиОбороты.Регистратор.ДокументОснование.Сделка = втТоварыИУслуги.ЗаказПоставщику 
                ИНАЧЕ ЗакупкиОбороты.Регистратор.Сделка = втТоварыИУслуги.ЗаказПоставщику 
            КОНЕЦ) 

вот тут как вариант еще сделать 2 ВТ
в первой по условию выборки в первом ЗакупкиОбороты.Регистратор.ДокументОснование.Сделка
и втором ЗакупкиОбороты.Регистратор.Сделка наложить отбор по документу "Заказ поставщику".
потом 2 эти ВТ объеденить,загнать в ВТ.
И потом уже соединять с выборкой с товаром.(может индекс добавить где то по полям)
   MyNick
 
12 - 03.04.19 - 14:17
(0) Директору уже сказали, что ваш сервер - овно и нужно 100500 миллионов на новый сервер?
   karpik666
 
13 - 03.04.19 - 17:37
(0) и что, неужели непонятно, что здесь оптимизировать? неужели нужно сразу на форуме этот говнокод постить?
   Жан Пердежон
 
14 - 04.04.19 - 06:38
ЗаказПоставщикуУслуги.Ссылка.Ссылка

Больше ссылок Богу ссылок!
   bodri
 
15 - 04.04.19 - 07:06
(4) ещё бы узнать, что нужно этим запросом собрать
   DmVl76
 
16 - 04.04.19 - 07:39
Вот эта конструкция наверняка тормозит  ТОГДА ЗакупкиОбороты.Регистратор.ДокументОснование.Сделка - 2 подряд составных типа, да и еще в условиях соединения с большим регистром.

УТ11? Есть же еще регистр ЗаказыПоставщикам, там измерение Заказ есть, соединение по нему на прямую и поставить фильтр на тип регистратора (ПриобретениеТоваров, Авансовый отчет и т.д.).

И вот это еще ЗакупкиОбороты.Регистратор.Дата - у вас период в регистре и дата регистратора отличаются? Если нет, то ЗакупкиОбороты.Период.
   GROOVY
 
17 - 04.04.19 - 08:26
Полная ОПА нас тут  ПО ЗаказПоставщикуУслуги.Ссылка.Ссылка = ЗакрытиеЗаказовПоставщикам.ДокументОснование.Ссылка  причем как в первой части так, особенно, и во второй. Дай угадаю... Тип значения реквизита "ДокументОснование" - Документ ссылка любая?
   SleepyHead
 
18 - 04.04.19 - 08:27
(1) И эти люди призывали не смущать девушек и не подкалывать их за недостаточно четко заданные вопросы..
   GROOVY
 
19 - 04.04.19 - 08:29
(15) Этим запросом лучше ничего не собирать :)
   catena
 
20 - 04.04.19 - 08:32
(18)Не правда. Я призывала не переходить на обсуждение внешних и возрастных данных.
   SleepyHead
 
21 - 04.04.19 - 08:35
(20) Мог перепутать причину, но главным было то, что автор темы - девушка, а девушек стебать нельзя. Я так запомнил.
   catena
 
22 - 04.04.19 - 08:44
(21)В той теме были некорректные, на мой взгляд, высказывания о "товарной пригодности" автора темы. Если вы будете в том же ключе обсуждать автора текущей, я буду тоже возражать ;)
   xXeNoNx
 
23 - 04.04.19 - 09:16
Вот вы неблагодарные, вам человек кинул запрос который можно на собеседованиях давать соискателю на профпригодность, а вы его так..., ....неблагодарные...


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.