Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
21 Май 2018, 18:02
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: долго отрабатывает запрос  (Прочитано 3269 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн evg85

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-02-11
  • Сайт: 
  • Профессия: Программист 1С
Есть запрос для конфигурации ЗУП(текст запроса ниже), на файловой версии это запрос отрабатывает около 3 сек, этот же самый запрос на серверной версии 1С Postgres отрабатывает около 34сек. Данные на файловой и серверной версии идентичные. В чем может быть проблема ?

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

СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Результат,
    НАЧАЛОПЕРИОДА(ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации, ДЕНЬ),
    ВложенныйЗапрос1.НалогПриход,
    ВложенныйЗапрос2.Результат,
    ВложенныйЗапрос3.ПФРНакопительная,
    ВложенныйЗапрос3.ПФРСтраховая,
    ВложенныйЗапрос3.ПФРНакопительнаяЕНВД,
    ВложенныйЗапрос3.ПФРСтраховаяЕНВД,
    ВложенныйЗапрос4.СтрПФРСтраховая,
    ВложенныйЗапрос4.СтрПФРСтраховаяЕНВД,
    ВложенныйЗапрос4.СтрПФРНакопительная,
    ВложенныйЗапрос4.СтрПФРНакопительнаяЕНВД,
    ОсновныеНачисленияРаботниковОрганизаций.ГрафикРаботы,
    ВложенныйЗапрос5.Профсоюз


Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1310
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
Для начала рекомендую избавиться от вложенных запросов и использовать параметры виртуальных таблиц вместо условия ГДЕ.

Оффлайн evg85

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-02-11
  • Сайт: 
  • Профессия: Программист 1С
об изменении запроса подумать можно, но интересует причина медленной работы на серверном варианте, в отличии от файловой

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1310
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
Я бы впервую очередь изменил запрос. А насчет разного времени выполнения, то гугл в помощь. Где-то я уже натыкался на такое.

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2861
  • РЕПУТАЦИЯ: 548
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
SQL накладывает свои блокировки - отсюда и время выполнения дольше.

В Фаловом - попробуй когда 10-20 пользователей работают в БД, выполнить запрос, почуешь разницу... (SQL будет быстрее =))

P.S. Запрос переписывать надо....
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн evg85

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-02-11
  • Сайт: 
  • Профессия: Программист 1С
так и думал, что это связано с блокировками, спасибо буду переписывать запрос


Теги:
 

Как можно подставлять цену из регистра сведений "Цены поставщиков" в документ"ПоступлениеТоваров" на актуальную дату? Необходимо использовать запрос в решении.

Автор Елена6666666666Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 14
Просмотров: 10953
Последний ответ 24 Окт 2014, 13:30
от cska-fanat-kz
Запрос Параметры для "ИЗ"

Автор БерезинРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3358
Последний ответ 15 Май 2013, 23:27
от Березин
Что быстрее: Загрузить табличную часть в запрос и там добавить колонки, или пробежаться циклом по ТЧ и добавить значения в колонки

Автор ZeedРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1220
Последний ответ 11 Июл 2016, 09:00
от vitasw
Запрос по обработке "Согласование заявок"

Автор DenielAkreedРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 920
Последний ответ 29 Сен 2016, 02:39
от DenielAkreed
После "Выборка = Запрос.Выполнить().Выбрать()" строка в выборке автоматически переключается сама

Автор RuslerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 205
Последний ответ 30 Мар 2018, 05:05
от Luzer1C

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
152 Сообщений
oleg-x
65 Сообщений
alex0402
63 Сообщений
AIFrame AIFrame
52 Сообщений
wise wise
37 Сообщений
KOI8-R
34 Сообщений
buketov.av buketov.av
34 Сообщений
Alter
24 Сообщений
BuhRust
21 Сообщений
alexandr_ll
21 Сообщений

* Кто онлайн

  • Точка Гостей: 481
  • Точка Скрытых: 0
  • Точка Пользователей: 13
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal