1С+PostgreSQL - запрос ложит 1С-ку #566997


#0 by 024410
Доброе время суток! У кого есть опыт работы 1С + ___ Такая ситуация пишу запрос (текст в самом низу поста). В файловой версии работает, в клиент-серверном варианта либо умирает rphost, либо запрос выполняется 2-3 часа... Причиной всему последнее ПОЛНОЕ соединение, если его поменять на левое, то все ок. Запрос как бэ без особых косяков или...? ВЫБРАТЬ    Документ.АБП_ЗаданиеНаПогрузку.ЗаказыИРеализации КАК АБП_ЗаданиеНаПогрузкуЗаказыИРеализации    (НЕ АБП_ЗаданиеНаПогрузкуЗаказыИРеализации.Ссылка.ПометкаУдаления)    И АБП_ЗаданиеНаПогрузкуЗаказыИРеализации.Заказ.ДатаОтгрузки МЕЖДУ &НачалоПериода И &КонецПериода    ЗаказПокупателя.Проведен    И ЗаказПокупателя.ДатаОтгрузки МЕЖДУ &НачалоПериода И &КонецПериода    И (НЕ ЗаказПокупателя.Ссылка В                (ВЫБРАТЬ                    ЗапрещенныеЗаказы.Заказ                ИЗ                И (РеализацияТоваровУслуг.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода)) АВТОУПОРЯДОЧИВАНИЕ
#1 by Поручик
Ни хрена себе. А какова суть вопроса?
#2 by 024410
а че нихрена простенький запрос. суть в том может кто скажет лыжи не едут или я ....?
#3 by 024410
вообще нужно убедить заказчика поменять слона на что то другое, ну или как то его настроить этого слона, просто я в слонах вообще ни чего не понимаю, кроме того слона крутит местный админ на которого я никак не повлияю
#4 by Asmody
для начала — нахрена в запросе проскакивает конструкция ххх.Ссылка.yyy?
#5 by Jstunner
обычно, использование полного соединения говорит о корявости запроса
#6 by Asmody
от полного соединения можно избавится. например, объединением
#7 by Asmody
в-третьих, закинуть это всё в СКД (в разные наборы), и пусть платформа разрулит как ей удобно. (хотя это «в-третьих» надо уметь готовить)
#8 by 024410
насчет полного соединия согласен - не кашерно, но всетаки не должно же полное соединение "ложить" СУБД, кроме того соединяются 2 небольшие таблицы совсем небольшие
#9 by 024410
СКД не умеет делать полного соединения, а если уж и прибегать к объединению, так можно и без СКД разрулить - это запрос не для отчета а "рабочий"
#10 by Поручик
А ты профайлером его родимого или что там в постгре. Уверен, сильно оху..едивишься.
#11 by Господин ПЖ
я бы тоже положился... 1 000 слева 2 000 справа... 2 000 000 всего...
#12 by 024410
как бы задача не столько разрулить конкретную ситуацию сколько понять что не так со слоном, потому как в типовых конфигурациях полное соединение встречается не часто но встречается
#13 by 024410
полное соединиее в данном случае увеличивает выборку аж на одну строку
#14 by 024410
кроме того в файловой версии работает
#15 by 024410
ссори "профайлером его родимого" это как? какая то есть улитка перехватывающая запросы?
#16 by Dethmont
Слишком много таблиц
#17 by Поручик
Приблуда, показывающая транслированный запрос во всей его скульной красоте.
#18 by 024410
точно тока шо попробовал убрать первую таблицу - отработало
#19 by Dethmont
+ Я на СЕРВАКЕ одну ссылку со СКУЛЯ вытянуть не могу
#20 by Dethmont
тип ВСЕ ССЫЛКИ )))
#21 by 024410
однако, разве 4 таблицы это много. Я делал запросы и по 7-8 на DB2 и до 1000 записей и не че
#22 by Dethmont
А ты загрузил его под сотню таблиц тягать!!!!!!
#23 by Fragster
это из-за полного соединения, попробу заменить его на объединение, если получится. на крайняк - индексируй по полю соединения временные таблицы.
#24 by Dethmont
Какие 4!!! ПОСЧИТАЙ ВНИМАТЕЛЬНЕЕ!!!!
#25 by Dethmont
КАЖДАЯ ТОЧКА ТАБЛИЦА!!!!
#26 by 024410
я имел ввиду 4 временные
#27 by Fragster
ну и по мелочи - РегистрСведений.ЗначенияСвойствОбъектов сначала отобрать по свойству, а потом уже соединять
#28 by Asmody
т.е. как-бы совет в ТС плавно проигнорировал?
#29 by Asmody
и вообще, за отмазку «в файловой всё работает» надо гнать сцаными тряпками
#30 by Fragster
ну и да, тоже немного добавит. но самый швах - это то, как постгре работает с полными соединениями :(
#31 by Dethmont
Говорю же тебе что у меня вот такой запрос на сервере не работате Рег.Ссылка КАК Блин из РегистрыСведений.СинхронизацияБляБля КАК РЕг Где Рег.Ссыдка.ПометкаУдаления"
#32 by Fragster
И (НЕ ЗаказПокупателя.Ссылка В                (ВЫБРАТЬ                    ЗапрещенныеЗаказы.Заказ                ИЗ                    ЗапрещенныеЗаказы)) заменить на левое соединение с тбором по есть не null
#33 by Dethmont
Ваще без соединений!!!! Превышаю 256 таблиц
#34 by Dethmont
Да, нее запрос кривой, нужно пересмотреть структуру запроса.
#35 by 024410
Попробую проиндексировать та ни че я не игнорирую - пробую разные варианты - я ж чего и спрашиваю - просто я так думаю что если что работает на MSSQL и DB2 должно работать и на слоне. Конечно можно (и нужно ) оптимизировать запросы - это все знают - никаких точек и все такое просто с точками то быстрее, а времени иногда в обрез
#36 by Asmody
Регистр.Ссылка? Гениально!
#37 by Asmody
с точками не быстрее — 100%
#38 by Dethmont
Что гениально????
#39 by Asmody
+ вторая точка — лишний join. почти всегда так
#40 by Asmody
ссылка на регистр сведений. это в какой платформе?
#41 by Dethmont
Подскажи как правильно?
#42 by Dethmont
Мне нужно проверить все типы на пометкуУдаления
#43 by 024410
У меня всегда были сомнения насчет использования запросов в условиях, но как то 1С-совцы вроде пишут... Т.е. лучше юзать левое соединеие?
#44 by 024410
я имел ввиду бысрее писать запрос
#45 by Dethmont
Подскажешь что ли?
#46 by Asmody
не всегда. универсального рецепта нет. смотреть надо, анализировать
#47 by Asmody
я не знаю платформы, где есть ссылка на регистр сведений. чем я могу помочь?
#48 by MikleV
+1
#49 by Dethmont
Поле так называется!!!! неужели не понятно!?!?!?!?!
#50 by Dethmont
Имеет тип "все ссылки"
#51 by MikleV
ыыыыыы ВЫРАЗИТЬ
#52 by Dethmont
Причом тут платформа? (Кстати ссылка на регистр сведений есть!!!)
#53 by Dethmont
Что выразить???
#54 by Asmody
да?!!!! пойду-ка я спать. видимо, уже люди из параллельного мира на мисту пролезли. в «нашей» 8ке ссылок на запись РС нет
#55 by 024410
>> для начала — нахрена в запросе проскакивает конструкция ххх.Ссылка.yyy?   Документ.АБП_ЗаданиеНаПогрузку.ЗаказыИРеализации КАК АБП_ЗаданиеНаПогрузкуЗаказыИРеализации   (НЕ АБП_ЗаданиеНаПогрузкуЗаказыИРеализации.Ссылка.ПометкаУдаления)   И АБП_ЗаданиеНаПогрузкуЗаказыИРеализации.Заказ.ДатаОтгрузки МЕЖДУ &НачалоПериода И &КонецПериода ссори а как же тут иначе? я обращаюсь к ТЧ документа, но меня интересут только ТЧ документов не помеченных на удаление в ТЧ ссылка на документ хранится в поле ССЫЛКА как иначе не пойму.
#56 by Dethmont
База данных объектная????
#57 by 024410
ссылки есть на сам регистр на не на его записи, вот что имел ввиду   Asmody наверное. На записи ссылок нет.
#58 by Dethmont
))) Пусть книжки читает
#59 by Asmody
у тебя там не один запрос
#60 by Dethmont
Ды кто нибудь подскажет как получить поле "все ссылки" запросом???
#61 by Asmody
ссылка на регистр? Ну ка, ну ка это в какой книжке написано про ссылку на регистр?
#62 by Asmody
за такое поле руки надо отрывать. По жопу.
#63 by 024410
Да точно... нету ссылок на регистр
#64 by Dethmont
Согласен!!! Но кто то сдлал, не исправишь уже. А вот ипатса мне с ним
#65 by Dethmont
Как запись региста находит себя на сервере???
#66 by MikleV
бугага
#67 by MikleV
давно я так не ржал
#68 by Dethmont
Наверное по случайным полям?)))
#69 by Asmody
она там есть. Зачем ей себя находить?
#70 by 024410
>> у тебя там не один запрос до конструкция типа ххх.Ссылка.yyy? встречается только один раз: АБП_ЗаданиеНаПогрузкуЗаказыИРеализации.Ссылка.ПометкаУдаления
#71 by 024410
Регистр сведений это таблица, которая содержит записи.
#72 by Asmody
если что, ctrl+f
#73 by 024410
попробуй, например создать документ, добавить реквизит и положить туда регистр сведений
#74 by 024410
та пробовал вроде - щас еще погляжу
#75 by 024410
ну да есть еще в одном месте - уберу, может заработает :)
#76 by 024410
В любом случаем всем спасибо, я уже 2-мя способами починил запрос
#77 by 024410
щас еще поля проиндексирую - может и 3-й будет
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С