|   |   | 
| 
 | Запрос намертво зависает на postgresql | ☑ | ||
|---|---|---|---|---|
| 0
    
        edem911 22.03.19✎ 09:31 | 
        Добрый день!
 Платформа 8.3.14.1565 Сервер SQL Postgresql 10 Есть запрос с левым соединением по измерению регистра 
Запрос наглухо виснет в базе на postgresql. В файловой формируется за 10 сек В MS SQL тоже. postgresql настроен по всем канонам. Поле "Жилец" индексируется. Разработчики конфигурации уже 2 неделю анализируют базу или говорят, что анализируют( Помогите, у меня уже варианты закончились. | |||
| 1
    
        antihacker 22.03.19✎ 09:37 | 
        А постгри запатчен патчем для 1С ? У меня ничего не зваисает. Давно сижу на постгри. Правда патч на 9,6 верисю. Судя по версии твего постгри он не запатчен     | |||
| 2
    
        edem911 22.03.19✎ 09:45 | 
        (1) А вот об этом я не подумал...
 На сайте postgre рекомендуют 9.4.14 и 9.6.5. Щас попробуем, спасибо за наводку. | |||
| 3
    
        antihacker 22.03.19✎ 09:50 | 
        Обязательно отпишись.     | |||
| 4
    
        cons24 22.03.19✎ 10:48 | 
        (0) вообще в "типичных причинах неоптимальной работы запросов" на ИТС как раз написано про соединение с виртуальными таблицами.
 Так что как вариант - поместить каждую виртуальную во временную, и лишь потом соединять. | |||
| 5
    
        novichok79 22.03.19✎ 10:50 | 
        (1) на 10-ую патч уже не нужен, насколько я знаю. там сделано через расширение.     | |||
| 6
    
        arsik гуру 22.03.19✎ 10:54 | 
        (5) откуда ставил постгре? Ставь из репозитория postgrespro.ru     | |||
| 7
    
        arsik гуру 22.03.19✎ 10:56 | ||||
| 8
    
        unregistered 22.03.19✎ 10:58 | 
        (0) Перепишите запрос на пакет и ипите мозг.
 > Разработчики конфигурации уже 2 неделю анализируют базу или говорят, что анализируют Они-то как раз ипут вам мозг. Это очевидно. | |||
| 9
    
        unregistered 22.03.19✎ 11:01 | 
        (0) Для начала можно прост избавиться от ошибок в виде сравнения даты с NULL.
 Типа КВП_СведенияОПроживающихНаДату.ДатаИзменения < КВП_СведенияОПроживающихНаДатуБезОтбора.ДатаИзменения. Вообще вот это поле (ниже) - оно что? Каков его смысл? Что там должно быть, если условие в КОГДА не выполняется? Почему нет ИНАЧЕ? |ВЫБОР | КОГДА КВП_СведенияОПроживающихНаДату.ДатаИзменения < КВП_СведенияОПроживающихНаДатуБезОтбора.ДатаИзменения | ТОГДА КВП_СведенияОПроживающихНаДатуБезОтбора.ДатаИзменения | КОНЕЦ КАК ДатаВыбытия | |||
| 10
    
        unregistered 22.03.19✎ 11:03 | 
        + к (9) Вообще авторы текста запроса из (0) в курсе что такое правое и левое соединение и чем они отличаются? В тексте явно перепутаны право и лево.     | |||
| 11
    
        unregistered 22.03.19✎ 11:03 | 
        (8)* "и ипите" читать как "и НЕ ипите"
 Извиняюсь. | |||
| 12
    
        edem911 22.03.19✎ 11:27 | 
        (9) Да сам отчет в конкретном случае я переписал. Но проблема в том что в типовом решении они используют такой отбор проживающих везде где нужно получить таблицу проживающих, там не правильная логика еще и самого регистра. И в самом первом обращении к разработчикам я указывал конкретно на этот кривой запрос, а они еще чето анализируют. Просто переписывать пол конфы из-за "крутых" разработчиков. 
 Кстати запрос вывел информацию спустя 57 596 сек, в файловой базе выводит за 18 сек. | |||
| 13
    
        Провинциальный 1сник 22.03.19✎ 11:28 | 
        Моё любимое "enable_nestloop=off" в очередной раз     | |||
| 14
    
        edem911 22.03.19✎ 11:36 | 
        (13) включал выключал - без результата, делал индексацию, чистил мусор.     | |||
| 15
    
        Йохохо 22.03.19✎ 11:47 | 
        ВЫБРАТЬ РАЗРЕШЕННЫЕ X СрезПоследних Х КВП_СведенияОПроживающихНаДату.ЛицевойСчет.Адрес.Владелец 
 вам самим то не жалко его? | |||
| 16
    
        edem911 22.03.19✎ 11:53 | 
        (9) Спасибо и за эту наводку
 Кстати оптимизированный запрос, выводиться за 8 сек))) 
 | |||
| 17
    
        edem911 22.03.19✎ 11:55 | 
        А вот так за 6 сек.
 
 | |||
| 18
    
        Йохохо 22.03.19✎ 12:30 | 
        что мешает использовать вместо ЕСТЬNULL(СОтбором.ЛицевойСчет.Адрес.Владелец, БезОтбора.ЛицевойСчет.Адрес.Владелец) КАК Здание ЕСТЬNULL(СОтбором.ЛицевойСчетАдресВладелец, БезОтбора.ЛицевойСчетАдресВладелец) КАК Здание ?????     | |||
| 19
    
        Йохохо 22.03.19✎ 12:31 | 
        еще и на левое     | |||
| 20
    
        edem911 22.03.19✎ 12:50 | 
        (18) ничего, здесь просто были заменены таблицы регистров на временные, итоговый запрос не менялся     | |||
| 21
    
        Йохохо 22.03.19✎ 12:51 | 
        (20) не понимаете да?     | |||
| 22
    
        edem911 22.03.19✎ 12:57 | 
        (21) понимаю, я так и переделал, изначально это место сформировалось конструктором при замене таблицы регистра на временную     | |||
| 23
    
        Йохохо 22.03.19✎ 12:59 | 
        разработчикам вашим не показывайте, а то они будут к вам относиться как вы к ним     | |||
| 24
    
        edem911 22.03.19✎ 13:04 | 
        В итоге имеем время вывода 3 сек.
 Всем спасибо!) 
 | |||
| 25
    
        Йохохо 22.03.19✎ 13:09 | 
        осталось с нул порешать, есть он или кушать     | |||
| 26
    
        edem911 22.03.19✎ 18:15 | 
        В итоге больше всего нравиться ответ разработчиков.
 Выглядело это примерно так: 07.03-Я- У нас не формируется отчет, проблема в запросе вот в этом месте. 07.03-Р-У нас все работает на релизе "таком то", обновите конфигурацию 07.03-Я- релиза "такого -то" нет на оф. сайте 07.03-Р- это тестовый релиз, вот вам ссылка 07.03-Я- Обновили проблема сохранилась 11.03-Р- Дайте копию базы 11.03-Я- Вот ссылка 12.03-Я- Есть результат? 12.03-Р- база анализируется 13.03-Я- есть результат? 14.03-Р- данные анализируются 15.03-Я- есть результат? 15.03-Р- база тестируется 19.03-Я- Есть результат?Сроки? 20.03-Р- тестируется сроки назвать не можем 22.03-Я- Мы решили проблему своими силами 22.03-Р- Вчера вопрос был передан в отдел разработки на рассмотрение 22.03-Я(В шоке)- а что вы делали до этого? 22.03-Р- до этого момента проблема анализировалась линией консультации. Как будет ответ мы вам сообщим. Занавес. | |||
| 27
    
        Провинциальный 1сник 24.03.19✎ 19:56 | 
        (26) В среднем две недели приходится бодаться с линией консультаций, чтобы они наконец-то признали ошибку ошибкой и передали на рассмотрение разработчиком. Это норма для 1с.     | |||
| 28
    
        palsergeich 24.03.19✎ 21:22 | 
        (26) Купите корпоративную поддержку и к Вашим проблемам будут относиться уважительнее (С)     | |||
| 29
    
        stopa85 25.03.19✎ 08:30 | 
        (24) Еще бы сравнить это оптимизированый код, с файловой и MS SQL.     | |||
| 30
    
        unregistered 25.03.19✎ 08:41 | 
        (29) В этом, думаю, особого смысла нет. Результат сравнения больше будет зависеть не от конкретной СУБД, а от различных прочих условий (общий размер данных, размер данных попадающих в отбор и пр.).
 В особенности если верить автору ветки в (12): "там не правильная логика еще и самого регистра". И судя по самому запросу, я склонен с ним согласиться. | |||
| 31
    
        edem911 25.03.19✎ 09:33 | 
        (29) в среднем, во всех вариантах, время выполнения 3-5 сек.     | |||
| 32
    
        sqr4 25.03.19✎ 09:57 | 
        (12) если это та конфа о которой я думаю, то там в регистре накопления УПЖКХ_Начисления - есть измерение Количество, я так и не разобрался зачем)     | |||
| 33
    
        edem911 25.03.19✎ 12:38 | 
        (32) да-да есть такое) использование нигде не встречается, может код в защищенных обработках)     | |||
| 34
    
        sqr4 25.03.19✎ 12:45 | 
        (33) Ну пару раз при написании собственных квитанций, я натыкался на то что количество сворачивалось, а не суммировалось. И каждый раз с криком на весь отдел "Количество же измерение" задача решалась.
 А так да, в старых релизах в зашифрованных модулях. | |||
| 35
    
        edem911 28.05.19✎ 12:32 | 
        АП 
 Еще хотел написать, если нужно использовать запрос к виртуальной таблице(пример "Срез последних") с пост условием 100 раз подумайте использовать ли такой механизм в postgre. Столкнулся со следующей задачей "Получить действующие на дату начисления" регистра сведений, казалось бы что может быть проще. Пишу запрос 
Время выполнения запроса 870 сек. понятное дело что в отчете его особо не используешь. Дай думаю переделаю запрос без ВТ, сделал следующее 
В итоге время выполнения 0,943 сек. в общем -не перестаю удивляться) | |||
| 36
    
        Simod 28.05.19✎ 13:31 | 
        (35) При реализации среза последних самостоятельно нужно не забывать про "Активность".     | |||
| 37
    
        edem911 28.05.19✎ 13:37 | 
        (36) точно, спасибо за наводку     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |