|
Запрос отрабатывает 37 секунд. Это нормально? | ☑ | ||
---|---|---|---|---|
0
DIvanmgn
01.08.14
✎
11:21
|
Работаю над оптимизацией запроса. Достиг своего потолка. Может можно ускорить?
ВЫБРАТЬ &ОТ1 КАК ОТ1, &ОТ2 КАК ОТ2 ПОМЕСТИТЬ ВТ_ОТ ИНДЕКСИРОВАТЬ ПО ОТ1, ОТ2 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ исУкрупненныеНоменклатурныеГруппы.Родитель КАК Родитель, ХарактеристикиНоменклатуры.Ссылка КАК Характеристика, &Подразделение КАК Подразделение ПОМЕСТИТЬ ВТ_Ключ ИЗ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.исУкрупненныеНоменклатурныеГруппы КАК исУкрупненныеНоменклатурныеГруппы ПО ХарактеристикиНоменклатуры.бсУкрупненнаяНоменклатурнаяГруппа = исУкрупненныеНоменклатурныеГруппы.Ссылка И (исУкрупненныеНоменклатурныеГруппы.Родитель = &УТГ) ИНДЕКСИРОВАТЬ ПО Характеристика, Подразделение, Родитель ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ХарактеристикиНоменклатурыДополнительныеРеквизиты.Значение КАК ОТ, ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство, ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка КАК Характеристика ПОМЕСТИТЬ ВТ_ОТ1 ИЗ ВТ_Ключ КАК ВТ_Ключ ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарактеристикиНоменклатурыДополнительныеРеквизиты ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ОТ КАК ВТ_ОТ ПО ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство = ВТ_ОТ.ОТ1 ПО ВТ_Ключ.Характеристика = ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка СГРУППИРОВАТЬ ПО ХарактеристикиНоменклатурыДополнительныеРеквизиты.Значение, ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство, ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка ИНДЕКСИРОВАТЬ ПО Характеристика ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ХарактеристикиНоменклатурыДополнительныеРеквизиты.Значение КАК ОТ, ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство, ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка КАК Характеристика ПОМЕСТИТЬ ВТ_ОТ2 ИЗ ВТ_Ключ КАК ВТ_Ключ ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарактеристикиНоменклатурыДополнительныеРеквизиты ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ОТ КАК ВТ_ОТ ПО ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство = ВТ_ОТ.ОТ2 ПО (ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка = ВТ_Ключ.Характеристика) СГРУППИРОВАТЬ ПО ХарактеристикиНоменклатурыДополнительныеРеквизиты.Значение, ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство, ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка ИНДЕКСИРОВАТЬ ПО Характеристика ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Ключ.Родитель, ВТ_Ключ.Характеристика, ВТ_Ключ.Подразделение, ВТ_ОТ1.ОТ, ВТ_ОТ2.ОТ КАК ОТ1 ПОМЕСТИТЬ ВТ ИЗ ВТ_Ключ КАК ВТ_Ключ ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОТ2 КАК ВТ_ОТ2 ПО ВТ_Ключ.Характеристика = ВТ_ОТ2.Характеристика ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОТ1 КАК ВТ_ОТ1 ПО ВТ_Ключ.Характеристика = ВТ_ОТ1.Характеристика |
|||
1
Кир Пластелинин
01.08.14
✎
11:31
|
а излишне то зачем индексировать? может проглядел, но вот по родителю как минимум не увидел соединения хотя бы
|
|||
2
DIvanmgn
01.08.14
✎
11:32
|
(1) Родитель нужен потом
|
|||
3
Кир Пластелинин
01.08.14
✎
11:33
|
(2) из этой же таблицы? ну и может тогда полный запрос для начала? или выполняется данный кусок 37 секунд? субд какая?
|
|||
4
DIvanmgn
01.08.14
✎
11:36
|
MS SQL
|
|||
5
DIvanmgn
01.08.14
✎
11:37
|
Предполагаю, что весь запрос будет выполняться еще дольше.
|
|||
6
_fvadim
01.08.14
✎
11:38
|
профайлером посмотреть узкие места
|
|||
7
Chai Nic
01.08.14
✎
11:44
|
Для начала выполнить его по частям, чтобы определить, какая именно часть тормозит..
|
|||
8
DIvanmgn
01.08.14
✎
11:48
|
(8) с самого начала выходит тормозит:
ВЫБРАТЬ &ОТ1 КАК ОТ1, &ОТ2 КАК ОТ2 ПОМЕСТИТЬ ВТ_ОТ ИНДЕКСИРОВАТЬ ПО ОТ1, ОТ2 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ исУкрупненныеНоменклатурныеГруппы.Родитель КАК Родитель, ХарактеристикиНоменклатуры.Ссылка КАК Характеристика, &Подразделение КАК Подразделение ИЗ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.исУкрупненныеНоменклатурныеГруппы КАК исУкрупненныеНоменклатурныеГруппы ПО ХарактеристикиНоменклатуры.бсУкрупненнаяНоменклатурнаяГруппа = исУкрупненныеНоменклатурныеГруппы.Ссылка И (исУкрупненныеНоменклатурныеГруппы.Родитель = &УТГ) |
|||
9
Мимохожий Однако
01.08.14
✎
11:55
|
Какова структура параметров?
|
|||
10
Maxus43
01.08.14
✎
11:57
|
имхается мне что индексировать по одному полю смысла нет,
т.е. по полям &Параметр |
|||
11
Maxus43
01.08.14
✎
11:59
|
Внутреннее соединение под вопросом... попробовать отказаться надо
|
|||
12
Fragster
гуру
01.08.14
✎
12:00
|
первая таблица не нужна
|
|||
13
Fragster
гуру
01.08.14
✎
12:01
|
запихать отбор во вторую или какую там.
|
|||
14
Awreli
01.08.14
✎
12:02
|
Автор, твоё горе в соединении. По уму собирать нужные данные во временные таблицы, и их вот объединять. Точно точно
|
|||
15
Awreli
01.08.14
✎
12:03
|
где то даже была статья от 1с про оптимизацию запросов.
|
|||
16
krbIso
01.08.14
✎
12:06
|
план запроса глянь
|
|||
17
m-serg74
01.08.14
✎
12:06
|
(0) весь запрос в топку...
(15) какая оптимизация? |
|||
18
vde69
01.08.14
✎
12:09
|
все поля временной таблицы должны быть типизироваными,
в твоем случае есть Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты составного типа, это ОЧЕНЬ плохо если у тебя есть возможносьть заранее знать получаемый тип то нужно использовать Выразить для "ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка" если такой возможности нет - отказатся от ВТ |
|||
19
Fragster
гуру
01.08.14
✎
12:10
|
(18) выразить нужно только при разыменовывании
|
|||
20
vde69
01.08.14
✎
12:12
|
(19) имено это я и имел в виду ;)
|
|||
21
DIvanmgn
01.08.14
✎
12:13
|
ВЫБРАТЬ исУкрупненныеНоменклатурныеГруппы.Родитель КАК Родитель,
ХарактеристикиНоменклатуры.Ссылка КАК Характеристика ИЗ Справочник.исУкрупненныеНоменклатурныеГруппы КАК исУкрупненныеНоменклатурныеГруппы ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры ПО (ХарактеристикиНоменклатуры.бсУкрупненнаяНоменклатурнаяГруппа = исУкрупненныеНоменклатурныеГруппы.Ссылка) такой запрос отрабатывает 24 секунды (это я самое начало сильно упростил) а такой: ВЫБРАТЬ ПЕРВЫЕ 1000 исУкрупненныеНоменклатурныеГруппы.Родитель КАК Родитель, ХарактеристикиНоменклатуры.Ссылка КАК Характеристика ИЗ Справочник.исУкрупненныеНоменклатурныеГруппы КАК исУкрупненныеНоменклатурныеГруппы ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры ПО (ХарактеристикиНоменклатуры.бсУкрупненнаяНоменклатурнаяГруппа = исУкрупненныеНоменклатурныеГруппы.Ссылка) 8 секунд |
|||
22
DIvanmgn
01.08.14
✎
12:17
|
похоже дело в том что реквизит справочника характеристикиНоменклатуры бсУкрупненнаяНоменклатурнаяГруппа не индексирован
|
|||
23
Fragster
гуру
01.08.14
✎
12:17
|
(21) дай тимвьювер
|
|||
24
Fragster
гуру
01.08.14
✎
12:18
|
(22) это возможно
|
|||
25
DIvanmgn
01.08.14
✎
12:42
|
выяснилось, что длительность связана с использованием "неправильной" консоли запросов. На "правильной" - 15 мс.
|
|||
26
Fragster
гуру
01.08.14
✎
12:43
|
у меня консоль http://devtool1c.ucoz.ru/
|
|||
27
DIvanmgn
01.08.14
✎
12:45
|
(26) да-да. именно на ней все хорошо )
|
|||
28
DIvanmgn
01.08.14
✎
12:46
|
Спасибо за советы. Многого не знал.
|
|||
29
Maxus43
01.08.14
✎
12:47
|
а при чем тут консоль?
|
|||
30
Maxus43
01.08.14
✎
12:47
|
ХарактеристикиНоменклатуры.Ссылка КАК Характеристика
Представление(ХарактеристикиНоменклатуры.Ссылка) КАК ПредставлениеХарактеристика может по этому? При выводе за каждой ссылкой он опять делает запрос в базу, за представлением |
|||
31
DIvanmgn
01.08.14
✎
12:49
|
(29) при том что я время замерял секундомером на телефоне. Получается львиную долю времени просто вывод в табличный документ занимал
|
|||
32
Maxus43
01.08.14
✎
12:51
|
(31) да >(30). Прдеставление сразу вытаскивай в запросе
|
|||
33
Maxus43
01.08.14
✎
12:56
|
в стандартной консоли там внизу появляется индикатор "вывод отчета" (как то так), по нему понятно что запрос давно выполнился, и началось долбление субд запросами по каждой строчке отчета
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |