|
помогите ускорить запрос... | ☑ | ||
---|---|---|---|---|
0
vde69
модератор
24.01.14
✎
16:24
|
вечер могз плавится... текущий запрос выполняется 15 сек...
помогите оптимизировать... конфа Бух 3.0, ничего менять в методанных нельзя ВЫБРАТЬ РАЗЛИЧНЫЕ ВЫРАЗИТЬ(СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника КАК Справочник.Контрагенты) КАК Объект, ВЫРАЗИТЬ(СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника.ИНН КАК СТРОКА(20)) КАК ОбъектИНН, ВЫРАЗИТЬ(СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника.КПП КАК СТРОКА(20)) КАК ОбъектКПП, ВЫРАЗИТЬ(СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника.Наименование КАК СТРОКА(200)) КАК ОбъектНаименование ПОМЕСТИТЬ СуществующиеСопоставления ИЗ РегистрСведений.СоответствияОбъектовИнформационныхБаз КАК СоответствияОбъектовИнформационныхБаз ГДЕ СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторПриемника = &УникальныйИдентификаторПриемника ИНДЕКСИРОВАТЬ ПО Объект, ОбъектИНН, ОбъектКПП, ОбъектНаименование ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СуществующиеСопоставления.Объект, 1 КАК Приоритет ИЗ СуществующиеСопоставления КАК СуществующиеСопоставления ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Контрагенты.Ссылка, 2 ИЗ Справочник.Контрагенты КАК Контрагенты ЛЕВОЕ СОЕДИНЕНИЕ СуществующиеСопоставления КАК СуществующиеСопоставления ПО Контрагенты.ИНН = СуществующиеСопоставления.ОбъектИНН И Контрагенты.КПП = СуществующиеСопоставления.ОбъектКПП И (Контрагенты.ИНН = &ИНН) И (Контрагенты.КПП = &КПП) ГДЕ Контрагенты.ИНН = &ИНН И Контрагенты.КПП = &КПП И СуществующиеСопоставления.Объект.Ссылка ЕСТЬ NULL |
|||
1
Волшебник
модератор
24.01.14
✎
16:26
|
>>> ничего менять в методанных нельзя
Можно. Индексы добавь |
|||
2
H A D G E H O G s
24.01.14
✎
16:28
|
ВЫРАЗИТЬ(ВЫРАЗИТЬ(СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника КАК Справочник.Контрагенты).ИНН КАК СТРОКА(20)) КАК ИНН,
И.т.д. |
|||
3
H A D G E H O G s
24.01.14
✎
16:29
|
И СуществующиеСопоставления.Объект=Значение(Справочник.Контрагенты.ПустаяСсылка)
|
|||
4
H A D G E H O G s
24.01.14
✎
16:29
|
ппц, не узнаю vde
|
|||
5
H A D G E H O G s
24.01.14
✎
16:30
|
ЛЕВОЕ СОЕДИНЕНИЕ СуществующиеСопоставления КАК СуществующиеСопоставления
ПО Контрагенты.ИНН = СуществующиеСопоставления.ОбъектИНН И Контрагенты.КПП = СуществующиеСопоставления.ОбъектКПП И (Контрагенты.ИНН = &ИНН) И (Контрагенты.КПП = &КПП) ГДЕ Контрагенты.ИНН = &ИНН И Контрагенты.КПП = &КПП трешъ, угар и содомиЯ Объясни смысл, плиз. |
|||
6
le_
24.01.14
✎
16:32
|
И СуществующиеСопоставления.Объект.Ссылка ЕСТЬ NULL
Скорее всего из-за этого тормозит. Оно там клепает подзапросы ко всем объектам, типы которых перечислены в этом реквизите. |
|||
7
H A D G E H O G s
24.01.14
✎
16:32
|
ВЫРАЗИТЬ(СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника.ИНН
100500 вероятности тупости здесь, ибо там - ЛюбаяСсылка |
|||
8
H A D G E H O G s
24.01.14
✎
16:32
|
(6) Там УЖЕ всего 1 тип - Контрагенты.
|
|||
9
le_
24.01.14
✎
16:35
|
(8) Да, пардон
|
|||
10
H A D G E H O G s
24.01.14
✎
16:36
|
(9) Но это не мешает оптимизировать и его, см. (3)
Но меня мучает конструкция вида (5). Что хотел сказать художник? |
|||
11
H A D G E H O G s
24.01.14
✎
16:37
|
Даже скорее мы (5) изменим на
СуществующиеСопоставления.Объект ЕСТЬ NULL |
|||
12
Лефмихалыч
24.01.14
✎
16:38
|
+100500 к ВЫРАЗИТЬ
А в таблице СуществующиеСопоставления что ли много данных? На кой ее индексировать? Или это от отчаяния уже? |
|||
13
H A D G E H O G s
24.01.14
✎
16:39
|
(12) Это мы узнаем, когда откроеться тайна кода (5)
|
|||
14
vde69
модератор
24.01.14
✎
16:40
|
(2) все понял, спс.
(4) да у меня ж..а с НГ на самописку перешли, брали под это дело второго прога с 1 октября, а он пропал, один и писал и под телефоном лежу :) |
|||
15
H A D G E H O G s
24.01.14
✎
16:41
|
"а он пропал"
Жесть. Хорошо, что я в ваш банк не прошел на собеседовании. У вас проги пропадают. |
|||
16
vde69
модератор
24.01.14
✎
17:17
|
(15) ну во первых я уже 2 года не в банке, во вторых он сам пропал, там история мутная с ментами и т.д.
|
|||
17
GANR
24.01.14
✎
17:25
|
(0) Вот некоторые рекомендации
1. Отфильтровать ГДЕ СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника ССЫЛКА Справочник.Контрагенты И ВЫРАЗИТЬ(СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника КАК Справочник.Контрагенты) = &Контрагент 2. Индексы в метаданных добавить, если можно 3. Профайлер глянуть и план запроса - может чего-то прояснится. |
|||
18
GANR
24.01.14
✎
17:28
|
(0) См. (17) - я уверен, что дело в том, что УникальныйИдентификаторИсточника - составное поле из большого количества типов, а на СКЛ-уровне это транслируется в запрос с огромным количеством ОБЪЕДИНИТЬ ВСЕ, затем это оборачивается во вложенный запрос, а во вложенном запросе индексы (если есть) идут лесом.
|
|||
19
acsent
24.01.14
✎
17:30
|
Временная таблица здесь вообще не нужна
|
|||
20
vde69
модератор
24.01.14
✎
17:33
|
ВЫБРАТЬ РАЗЛИЧНЫЕ
ВЫРАЗИТЬ(СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника КАК Справочник.Контрагенты) КАК Объект ПОМЕСТИТЬ СуществующиеСопоставления ИЗ РегистрСведений.СоответствияОбъектовИнформационныхБаз КАК СоответствияОбъектовИнформационныхБаз ГДЕ СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторПриемника = &УникальныйИдентификаторПриемника ИНДЕКСИРОВАТЬ ПО Объект ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СуществующиеСопоставления.Объект, 1 КАК Приоритет ИЗ СуществующиеСопоставления КАК СуществующиеСопоставления ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Контрагенты.Ссылка, 2 ИЗ Справочник.Контрагенты КАК Контрагенты ЛЕВОЕ СОЕДИНЕНИЕ СуществующиеСопоставления КАК СуществующиеСопоставления ПО (Контрагенты.ИНН = &ИНН) И (Контрагенты.КПП = &КПП) И Контрагенты.Ссылка = СуществующиеСопоставления.Объект ГДЕ Контрагенты.ИНН = &ИНН И Контрагенты.КПП = &КПП И СуществующиеСопоставления.Объект.Ссылка ЕСТЬ NULL выполняется 0,01 сек |
|||
21
Rovan
гуру
24.01.14
✎
17:33
|
(0) посмотри в консоли запросов - какой подзапрос выполняется дольше ?
|
|||
22
Rovan
гуру
24.01.14
✎
17:34
|
а вообще поле ИНН какого типа ? разве не строка ??
|
|||
23
vde69
модератор
24.01.14
✎
17:35
|
(21) да я тупо лоханулся, имя через точку к реквизиту неопределеного типа.
отдыхать надо, а не дают... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |