Имя: Пароль:
1C
1С v8
v8: Проблемы в Платформе 8.2.18.109
0 AlexASNT
 
04.12.13
09:19
Запрос вешает SQL сервер 2008 R2, что в нем не так? В платформе 8.2.15.294 запрос выполняется моментально.

Регистр сведений ЗначениеСвойствОбъектов периодический причем реквизит Объект составного типа (почти все справочники).
Регистр сведений КонтактнаяИнформация не периодический, но реквизит Объект тоже составного типа. Условия на тип везде наложено.

В чем может быть проблемма? Как оптимизировать данный запрос?

ВЫБРАТЬ
    Абоненты.Ссылка КАК Абонент,
    ФИОФизЛицСрезПоследних.Фамилия КАК FIO,
    ФИОФизЛицСрезПоследних.Имя КАК NAME,
    ФИОФизЛицСрезПоследних.Отчество КАК SECONDNAME,
    ВЫБОР
        КОГДА Абоненты.Здание.НаселенныйПункт = &ПустойНП
            ТОГДА Абоненты.Здание.Город
        ИНАЧЕ Абоненты.Здание.НаселенныйПункт
    КОНЕЦ КАК PUNKTNM,
    Абоненты.Здание.Улица КАК STREETNM,
    Абоненты.Здание.Индекс КАК POSTINDEX,
    Абоненты.Дом КАК HOUSENO,
    Абоненты.Корпус КАК KORPUSNO,
    Абоненты.Квартира КАК FLATNO,
    Абоненты.Комната КАК ROOMNO,
    Абоненты.Здание.Город,
    Абоненты.Здание.НаселенныйПункт,
    АдреснаяИнформация.НомерКвартирыЧисло,
    АдреснаяИнформация.НомерКомнатыЧисло,
    АдреснаяИнформация.НомерПодъезда,
    АдреснаяИнформация.Улица,
    КодыКВЦ.Значение КАК КодКВЦ
ПОМЕСТИТЬ КонтактнаяИнформация
ИЗ
    Справочник.Абоненты КАК Абоненты
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ВЫРАЗИТЬ(КонтактнаяИнформация.Объект КАК Справочник.Абоненты) КАК Объект,
            КонтактнаяИнформация.ЗначениеПоУмолчанию КАК ЗначениеПоУмолчанию,
            КонтактнаяИнформация.НаселенныйПункт КАК НаселенныйПункт,
            КонтактнаяИнформация.Город КАК Город,
            КонтактнаяИнформация.Улица КАК Улица,
            КонтактнаяИнформация.Дом КАК Дом,
            КонтактнаяИнформация.Корпус КАК Корпус,
            КонтактнаяИнформация.Квартира КАК Квартира,
            КонтактнаяИнформация.Индекс КАК Индекс,
            КонтактнаяИнформация.НомерДомаЧисло КАК НомерДомаЧисло,
            КонтактнаяИнформация.НомерКвартирыЧисло КАК НомерКвартирыЧисло,
            КонтактнаяИнформация.НомерПодъезда КАК НомерПодъезда,
            КонтактнаяИнформация.НомерКомнатыЧисло КАК НомерКомнатыЧисло,
            КонтактнаяИнформация.Комната КАК Комната,
            КонтактнаяИнформация.Примечание КАК Примечание
        ИЗ
            РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ГДЕ
            КонтактнаяИнформация.ТипКонтактнойИнформации = &ТипКонтактнойИнформации
            И КонтактнаяИнформация.ВидКонтактнойИнформации = &ВидКонтактнойИнформации
            И КонтактнаяИнформация.Объект ССЫЛКА Справочник.Абоненты) КАК АдреснаяИнформация
        ПО Абоненты.Ссылка = АдреснаяИнформация.Объект.Ссылка
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(, ) КАК ФИОФизЛицСрезПоследних
        ПО Абоненты.ВладелецЛС.Ссылка = ФИОФизЛицСрезПоследних.ФизЛицо.Ссылка
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов.СрезПоследних(
                КОНЕЦПЕРИОДА(&МесяцВыгружаемыхДанных, МЕСЯЦ),
                Объект ССЫЛКА Справочник.Абоненты
                    И Свойство = &СвКодКВЦ) КАК КодыКВЦ
        ПО (Абоненты.Ссылка = (ВЫРАЗИТЬ(КодыКВЦ.Объект КАК Справочник.Абоненты)))
1 butterbean
 
04.12.13
09:21
это кусок запроса
2 butterbean
 
04.12.13
09:21
(1)+ хотя нет, вру
3 butterbean
 
04.12.13
09:22
(0) для начала поубирай лишние .Ссылка
4 krbIso
 
04.12.13
09:24
план запроса посмотри, вешает=скорее всего nested loops выполняется
соединение с подзапросом
5 AlexASNT
 
04.12.13
09:44
(4) Придется походу сперва подготовить данные запросы отдельно в пакете а потом соединить. Не понятно только почему в  8.2.15.294 выбирается оптимальны план, а в 8.2.18.109 и выше не оптимальный. Танцы с бубном какие то. Запрос не мой придется переписывать кучу отчетов которые вешают SQL.
6 Леха Дум
 
04.12.13
10:28
1) Попробуй заменить вложенную таблицу на обычное соединение
7 Леха Дум
 
04.12.13
10:30
2) убрать .Ссылка обязательно!
3)(ВЫРАЗИТЬ(КодыКВЦ.Объект КАК Справочник.Абоненты))) - убрать "выразить" - в условии среза последних уже есть  "Объект ССЫЛКА Справочник.Абоненты"
8 Леха Дум
 
04.12.13
10:31
Ссылка убирать в таких местах, подобных этому Абоненты.ВладелецЛС.Ссылка = "ФИОФизЛицСрезПоследних.ФизЛицо.Ссылка"
9 Леха Дум
 
04.12.13
10:48
и как то еще не понятен такой момент - нужная информация похоже содержится и в справочнике Абоненты и в КИ
AdBlock убивает бесплатный контент. 1Сергей