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

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

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

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

Оффлайн evg85

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

Оффлайн has

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

Оффлайн Dethmontt

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

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

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

Оффлайн evg85

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


Теги:
 

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

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

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

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

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

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

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

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

Ответов: 0
Просмотров: 676
Последний ответ 29 Сен 2016, 02:39
от DenielAkreed
8.2 Бух. Запрос с условием "комментарий содержит текст"

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

Ответов: 13
Просмотров: 16503
Последний ответ 02 Сен 2011, 01:14
от bolobol

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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
160 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
56 Сообщений
alex0402
46 Сообщений
andron81_81
44 Сообщений
AIFrame
35 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
28 Сообщений
BuhRust
27 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal