Долгое выполнение запроса

Обсуждаем проблемы долгих запросов

Модератор: Дмитрий Юхтимовский

Долгое выполнение запроса

Сообщение gladilov » 30 мар 2020, 10:03

Добрый день.
Месяца 3 назад ночью словили конфликт блокировок. Пользователи не могли провести реализации.
Путем анализа консоли администрирования 1с нашли сеанс с большим значением "захвачено СУБД", завершили его. Блокировка ушла. Но стала периодически возвращаться.
Симптомы:
- запуск фонового "проверка актуальности данных" при открытии стандартного бух.отчета или обработки закрытия месяца, и иногда при запуске фонового "Формирование списка операций закрытия месяца ..."
- рост счетчика "sql/ buffer manager /pages lookups"

Какова причина тормозов, при условии что запрос типовой, настройки оборудования не менялись, и выполняется перезакрытие месяцев?
План запроса (фрагмент) во вложении. Логин в skynet - urbroiler
Запрос 1с:
Код: выделить все
ВЫБРАТЬ РАЗЛИЧНЫЕ
   Организации.Ссылка КАК Организация,
   ВЫБОР КОГДА Организации.ГоловнаяОрганизация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) ТОГДА
      Организации.Ссылка
   ИНАЧЕ
      Организации.ГоловнаяОрганизация
   КОНЕЦ КАК ГоловнаяОрганизация
ПОМЕСТИТЬ Организации
ИЗ
   Справочник.Организации КАК Организации
ГДЕ
   Организации.Ссылка В (&Организация)

ОБЪЕДИНИТЬ

ВЫБРАТЬ РАЗЛИЧНЫЕ
   Организации.Ссылка,
   Организации.ГоловнаяОрганизация
ИЗ
   Справочник.Организации КАК Организации
ГДЕ
   Организации.ГоловнаяОрганизация В (&Организация)

ИНДЕКСИРОВАТЬ ПО
   Организация
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   УчетныеПолитики.Организация КАК Организация,
   УчетныеПолитики.ПлательщикНалогаНаПрибыль КАК ИспользоватьДанныеНалоговогоУчета
ПОМЕСТИТЬ ПлательщикиНалогаНаПрибыль
ИЗ
   РегистрСведений.УчетнаяПолитикаОрганизаций.СрезПоследних(
         &НачалоПериода,
         Организация В
            (ВЫБРАТЬ
               Т.Организация КАК Организация
            ИЗ
               Организации КАК Т)) КАК УчетныеПолитики

ИНДЕКСИРОВАТЬ ПО
   УчетныеПолитики.Организация
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ПорядокОтражения.Организация,
   ПорядокОтражения.Склад,
   ПорядокОтражения.ГруппаФинансовогоУчета,
   ПорядокОтражения.СчетУчетаНаСкладе
ПОМЕСТИТЬ НастройкиИсключений
ИЗ
   РегистрСведений.ПорядокОтраженияНоменклатуры КАК ПорядокОтражения
   ВНУТРЕННЕЕ СОЕДИНЕНИЕ
      Организации КАК Организации
   ПО
      ПорядокОтражения.Организация = Организации.Организация
ГДЕ
   ПорядокОтражения.СчетУчетаНаСкладе <> ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка)

ИНДЕКСИРОВАТЬ ПО
   Склад,
   ГруппаФинансовогоУчета,
   ПорядокОтражения.Организация
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ГруппыФинУчетаНоменклатуры.Ссылка КАК ГруппаФинансовогоУчета,
   ГруппыФинУчетаНоменклатуры.СчетУчетаНаСкладе КАК СчетУчетаНаСкладе
ПОМЕСТИТЬ НастройкиПоУмолчанию
ИЗ
   Справочник.ГруппыФинансовогоУчетаНоменклатуры КАК ГруппыФинУчетаНоменклатуры
ГДЕ
   ГруппыФинУчетаНоменклатуры.СчетУчетаНаСкладе В ИЕРАРХИИ(ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Товары))
   
ОБЪЕДИНИТЬ ВСЕ   

ВЫБРАТЬ
   ЗНАЧЕНИЕ(Справочник.ГруппыФинансовогоУчетаНоменклатуры.ПустаяСсылка) КАК ГруппаФинансовогоУчета,
   ПорядокОтраженияНоменклатуры.СчетУчетаНаСкладе
ИЗ
   РегистрСведений.ПорядокОтраженияНоменклатуры КАК ПорядокОтраженияНоменклатуры
ГДЕ
   ПорядокОтраженияНоменклатуры.Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
   И ПорядокОтраженияНоменклатуры.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
   И ПорядокОтраженияНоменклатуры.ГруппаФинансовогоУчета = ЗНАЧЕНИЕ(Справочник.ГруппыФинансовогоУчетаНоменклатуры.ПустаяСсылка)
   И ПорядокОтраженияНоменклатуры.СчетУчетаНаСкладе В ИЕРАРХИИ(ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Товары))

ИНДЕКСИРОВАТЬ ПО
   ГруппаФинансовогоУчета
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыНаСкладах) КАК РазделУчета
ПОМЕСТИТЬ РазделыУчетаТоваров

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыПереданныеНаКомиссию)

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыВПути)
;

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

ИНДЕКСИРОВАТЬ ПО
   Ключ,
   Организация,
   ВидЗапасов
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   СтатьиРасходов.Ссылка
ПОМЕСТИТЬ СтатьиТранспортныхРасходов
ИЗ
   ПланВидовХарактеристик.СтатьиРасходов КАК СтатьиРасходов
ГДЕ
   СтатьиРасходов.ВидРасходов = ЗНАЧЕНИЕ(Перечисление.ВидыРасходовНУ.ТранспортныеРасходы)
   И НЕ СтатьиРасходов.ВариантРаспределенияРасходовРегл = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров)

ИНДЕКСИРОВАТЬ ПО
   Ссылка
;

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

;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Организации.Организация КАК Организация,
   ВЫБОР
      КОГДА ДанныеРасчетаДолей.СуммаРасходов = 0
            ИЛИ ДанныеРасчетаДолей.РеализацияТоваров = 0
            ИЛИ ДанныеРасчетаДолей.РеализацияТоваров + ДанныеРасчетаДолей.СальдоТоваровКонечное = 0
         ТОГДА 0
      КОГДА ДанныеРасчетаДолей.СуммаРасходов -
            (ВЫРАЗИТЬ(ДанныеРасчетаДолей.СальдоТоваровКонечное *
               (ВЫРАЗИТЬ(ДанныеРасчетаДолей.СуммаРасходов / (ДанныеРасчетаДолей.РеализацияТоваров + ДанныеРасчетаДолей.СальдоТоваровКонечное) КАК ЧИСЛО(15, 8))
            ) КАК ЧИСЛО(15, 2))) > 0
         ТОГДА ВЫРАЗИТЬ(
               (ДанныеРасчетаДолей.СуммаРасходов -
                  (ВЫРАЗИТЬ(ДанныеРасчетаДолей.СальдоТоваровКонечное *
                     (ВЫРАЗИТЬ(ДанныеРасчетаДолей.СуммаРасходов / (ДанныеРасчетаДолей.РеализацияТоваров + ДанныеРасчетаДолей.СальдоТоваровКонечное) КАК ЧИСЛО(15, 8))
               )КАК ЧИСЛО(15, 2)))) / ДанныеРасчетаДолей.СуммаРасходов
            КАК ЧИСЛО(15, 8))
      ИНАЧЕ 0
   КОНЕЦ КАК ДоляТранспортныхРасходов
ПОМЕСТИТЬ ДолиТранспортныхРасходов
ИЗ
   ДанныеРасчетаДолей КАК ДанныеРасчетаДолей
   ВНУТРЕННЕЕ СОЕДИНЕНИЕ
      Организации КАК Организации
   ПО
      ДанныеРасчетаДолей.Организация = Организации.ГоловнаяОрганизация
ГДЕ
   Организации.Организация В (&Организация)
;
Вложения
Screenshot_1.png
Screenshot_1.png (171.8 KiB) Просмотров: 4122
gladilov
 
Сообщений: 15
Зарегистрирован: 13 дек 2018, 11:44

Re: Долгое выполнение запроса

Сообщение Гилёв Вячеслав » 30 мар 2020, 11:58

предоставленной информации недостаточно для дианостики блокировок
но по плану видно как минимум захват чуть ли не всего AccumRg65591
сомневаюсь что параллельно кто то в него записать сможет
НО, это лишь один из множества вариантов
чтобы делать достоверный вывод надо получить полный контекст, у вас есть свой программист?
Гилёв Вячеслав
 
Сообщений: 2304
Зарегистрирован: 11 фев 2013, 15:40
Откуда: Россия, Москва

Re: Долгое выполнение запроса

Сообщение gladilov » 30 мар 2020, 18:20

Есть. Что надо сделать?
gladilov
 
Сообщений: 15
Зарегистрирован: 13 дек 2018, 11:44

Re: Долгое выполнение запроса

Сообщение Гилёв Вячеслав » 31 мар 2020, 06:20

показать ему вашу информацию
Гилёв Вячеслав
 
Сообщений: 2304
Зарегистрирован: 11 фев 2013, 15:40
Откуда: Россия, Москва

Re: Долгое выполнение запроса

Сообщение gladilov » 31 мар 2020, 09:25

Гилёв Вячеслав писал(а): надо получить полный контекст

что надо кроме уже имеющейся информации на вкладке "контекст" в сервисе juerytj?
gladilov
 
Сообщений: 15
Зарегистрирован: 13 дек 2018, 11:44

Re: Долгое выполнение запроса

Сообщение Дмитрий Юхтимовский » 31 мар 2020, 09:46

План запроса (на закладке "Детальная информация о запросе"-"План запроса") содержит достаточное количество информации, на основании этого уже можно спокойно переписывать запрос, контролируя результат с помощью SQL Profiler или консоли запросов, которая умеет показывать планы выполняющихся запросов. Задача - избавиться от перебора по кругу миллиардов строк данных регистра.
Дмитрий Юхтимовский
 
Сообщений: 650
Зарегистрирован: 11 фев 2013, 19:28
Откуда: gilev.ru

Re: Долгое выполнение запроса

Сообщение gladilov » 31 мар 2020, 11:25

Сейчас увидел что запрос в очередном релизе переписан. Возможно как раз потому, что тормозил. Обновимся, будем надеяться на лучшее.
gladilov
 
Сообщений: 15
Зарегистрирован: 13 дек 2018, 11:44

Re: Долгое выполнение запроса

Сообщение Дмитрий Юхтимовский » 31 мар 2020, 13:16

На эту операцию у вас уже встроен замер времени её выполнения с помощью APDEX?
Было бы очень полезно, если бы таки был встроен, чтобы вы сразу могли видеть, как изменилось время выполнения операции после обновления, помогло обновление или нет.
Дмитрий Юхтимовский
 
Сообщений: 650
Зарегистрирован: 11 фев 2013, 19:28
Откуда: gilev.ru

Re: Долгое выполнение запроса

Сообщение Гилёв Вячеслав » 31 мар 2020, 17:31

gladilov писал(а):
Гилёв Вячеслав писал(а): надо получить полный контекст

что надо кроме уже имеющейся информации на вкладке "контекст" в сервисе juerytj?

что касаемо блокировок как минимум http://www.gilev.ru/latch/ собрать, посмотреть где этот код конфликтует и с кем
Гилёв Вячеслав
 
Сообщений: 2304
Зарегистрирован: 11 фев 2013, 15:40
Откуда: Россия, Москва

Re: Долгое выполнение запроса

Сообщение gladilov » 31 мар 2020, 23:38

Спасибо за ответы. Все-таки это была ошибка релиза https://bugboard.v8.1c.ru/error/000062070
Описание:
Долго выполняется запрос НалоговыйУчет.ДоляТранспортныхРасходовТекущегоМесяца().
Исправлена: "1С:ERP Управление предприятием 2.0", версия 2.4.10.94
gladilov
 
Сообщений: 15
Зарегистрирован: 13 дек 2018, 11:44

Re: Долгое выполнение запроса

Сообщение Дмитрий Юхтимовский » 01 апр 2020, 09:47

Вы уже применили обновления и убедились, что действительно ваша проблема решилась, долгий запрос стал выполняться быстро?
Дмитрий Юхтимовский
 
Сообщений: 650
Зарегистрирован: 11 фев 2013, 19:28
Откуда: gilev.ru


Вернуться в Долгие запросы

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1