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