|
Из-за чего может тормозить простой запрос по документам? | ☑ | ||
---|---|---|---|---|
0
Мигрень
30.10.18
✎
14:20
|
УТ 11.4. Из-за чего может тормозить простой запрос по документам?
ВЫБРАТЬ ЧекККМТовары.Номенклатура КАК Номенклатура, ЧекККМТовары.СуммаАвтоматическойСкидки КАК Скидка, ЧекККМСкидкиНаценки.СкидкаНаценка КАК СкидкаНаценка, ЧекККМТовары.Продавец КАК Продавец, ЧекККМТовары.Ссылка.Склад КАК Склад ИЗ Документ.ЧекККМ.Товары КАК ЧекККМТовары ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЧекККМ.СкидкиНаценки КАК ЧекККМСкидкиНаценки ПО ЧекККМТовары.Ссылка = ЧекККМСкидкиНаценки.Ссылка И ЧекККМТовары.КлючСвязи = ЧекККМСкидкиНаценки.КлючСвязи ГДЕ ЧекККМТовары.Ссылка.Дата >= &ДатаНачала И ЧекККМТовары.Ссылка.Дата <= &ДатаОкончания |
|||
1
1Сергей
30.10.18
✎
14:23
|
я бы сначала отобрал обе тч по периоду, а потом соединял
|
|||
2
Мыш
30.10.18
✎
14:24
|
(0) Вот здесь тормозит:
ЧекККМТовары.Ссылка.Дата >= &ДатаНачала И ЧекККМТовары.Ссылка.Дата <= &ДатаОкончания |
|||
3
sitex
naïve
30.10.18
✎
14:25
|
(2) "Между" видать уже не в моде использоваться
|
|||
4
ssh2006
30.10.18
✎
14:25
|
(0) попробуй снчала отобрать ссылки ЧекККМ по условию в ВТ
|
|||
5
Мигрень
30.10.18
✎
14:26
|
Ага, сейчас будет пробовать с ВТ и "Между"
|
|||
6
nicxxx
30.10.18
✎
14:28
|
(3) SQL серверу не важно, все равно будет скан диапазона
|
|||
7
Eiffil123
30.10.18
✎
14:56
|
(2) Ага. И это не совсем кошерно:
ЧекККМТовары.Ссылка.Склад КАК Склад |
|||
8
Eiffil123
30.10.18
✎
14:57
|
(5) зачем с ВТ. Нужно из запроса убрать ссылку:
ВЫБРАТЬ ЧекККМТовары.Номенклатура КАК Номенклатура, ЧекККМТовары.СуммаАвтоматическойСкидки КАК Скидка, ЧекККМСкидкиНаценки.СкидкаНаценка КАК СкидкаНаценка, ЧекККМТовары.Продавец КАК Продавец, ЧекККМТовары.Склад КАК Склад ИЗ Документ.ЧекККМ.Товары КАК ЧекККМТовары ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЧекККМ.СкидкиНаценки КАК ЧекККМСкидкиНаценки ПО ЧекККМТовары.Ссылка = ЧекККМСкидкиНаценки.Ссылка ГДЕ ЧекККМТовары.Дата >= &ДатаНачала И ЧекККМТовары.Дата <= &ДатаОкончания |
|||
9
Вафель
30.10.18
✎
14:57
|
(7) а как нужно?
|
|||
10
Вафель
30.10.18
✎
14:58
|
(8) разве в товарах есть дата?
|
|||
11
Cyberhawk
30.10.18
✎
14:58
|
Внутреннее замени левым
|
|||
12
dezss
30.10.18
✎
14:59
|
(8) юморист)
|
|||
13
dezss
30.10.18
✎
15:02
|
(0) запрос в коде тормозит или в консоле?
какое результирующее количество записей? и да, это лучше поменять: ЧекККМТовары.Ссылка.Склад КАК Склад на ЧекККМ.Склад КАК Склад еще одну внутренне сделать, думаю, сможешь))) Ну и это заодно поменять, так как уже ж соединились с самим документом: ЧекККМТовары.Ссылка.Дата >= &ДатаНачала И ЧекККМТовары.Ссылка.Дата <= &ДатаОкончания |
|||
14
Eiffil123
30.10.18
✎
15:10
|
(12) да, это я накосячил. Думал, соединяются таблица документов и одной ТЧ. А тут две ТЧ.
|
|||
15
Buster007
30.10.18
✎
15:10
|
1) открываешь профайлер
… н) Профит! |
|||
16
Timon1405
30.10.18
✎
15:12
|
(13)
>> ЧекККМТовары.Ссылка.Склад КАК Склад >>на >> ЧекККМ.Склад КАК Склад и где у ТС в запросе таблица "ЧекККМ"? |
|||
17
Мигрень
30.10.18
✎
15:12
|
(13) Везде тормозит, и в СКД и в консоли. Результирующих записей 227, время выполнения консоль показывает 51 сек.
|
|||
18
Timon1405
30.10.18
✎
15:14
|
можно попробовать перенести ЧекККМТовары.Ссылка.Дата >= &ДатаНачала
И ЧекККМТовары.Ссылка.Дата <= &ДатаОкончания в условия соединения |
|||
19
Cool_Profi
30.10.18
✎
15:18
|
План запроса что показывает? 57 секунд для 227 записей это немного многовато....
|
|||
20
Мигрень
30.10.18
✎
15:19
|
(19) Это вообще ужос
|
|||
21
Мигрень
30.10.18
✎
15:20
|
Попробую сделать две ВТ для двух ТЧ и соединиться в СКД
|
|||
22
Cool_Profi
30.10.18
✎
15:20
|
(20) План-то что говорит?
|
|||
23
Мигрень
30.10.18
✎
15:22
|
(22) Что-тов в этой консоли я не найду где план запросов смотреть, да он этот план мне ничего и не скажет, поскольку я в этом плане ничего не пойму
|
|||
24
Cool_Profi
30.10.18
✎
15:25
|
(23) Мдя... В скуле лови... Или ТЖ настраивай... Или пограммиста зови...
|
|||
25
Мигрень
30.10.18
✎
15:27
|
Пока выяснил только, что виновато соединение таблиц, а не условие отбора. Левое или внутреннее - не важно.
|
|||
26
dezss
30.10.18
✎
15:28
|
(16) я там же написал "еще одну внутренне сделать, думаю, сможешь)))"
|
|||
27
Мигрень
30.10.18
✎
15:28
|
(26) разыменование через две точки здесь не причем, я его выбросил, тормоза не из-за этого.
|
|||
28
Мигрень
30.10.18
✎
15:30
|
Кстати, замена внутреннего соединения на левое увеличивает время запроса на порядок. Такие дела.
|
|||
29
FIXXXL
30.10.18
✎
15:30
|
(25) сделай ВТ для отбора ссылок по периоду
ТЧ бери уже по отобранным ссылкам |
|||
30
Мигрень
30.10.18
✎
15:31
|
(29) вот я так и хочу
|
|||
31
FIXXXL
30.10.18
✎
15:31
|
(28) потому, что условия надо писать в связях
|
|||
32
Мигрень
30.10.18
✎
15:31
|
(31) ну может быть, сейчас попробую
|
|||
33
DexterMorgan
30.10.18
✎
15:32
|
(24) Да уже давно на ИТС есть консоль запросов, которая ТЖ настраивает и план показывает
|
|||
34
Мигрень
30.10.18
✎
15:34
|
(33) ага, вот именно, сам нифика не знает :)
|
|||
35
DexterMorgan
30.10.18
✎
15:34
|
(32) на тч ЧекККМСкидкиНаценки по дате отбор же не устанавливается
|
|||
36
DexterMorgan
30.10.18
✎
15:34
|
(32) Или там не нужен?
|
|||
37
DexterMorgan
30.10.18
✎
15:34
|
(32) ДОпиши просто отбор по дате для второй тч
|
|||
38
Мигрень
30.10.18
✎
15:36
|
(37) !!!
заработало вроде :) |
|||
39
Мигрень
30.10.18
✎
15:56
|
вот так в результате заработало норм:
ВЫБРАТЬ ЧекККМ.Ссылка КАК ЧекККМ ПОМЕСТИТЬ ВТ_ЧекККМ ИЗ Документ.ЧекККМ КАК ЧекККМ ГДЕ ЧекККМ.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЧекККМТовары.Номенклатура КАК Номенклатура, ЧекККМТовары.СуммаАвтоматическойСкидки КАК Скидка, ЧекККМСкидкиНаценки.СкидкаНаценка КАК СкидкаНаценка, ЧекККМТовары.Продавец КАК Продавец, ВТ_ЧекККМ.ЧекККМ.Склад КАК Склад ИЗ ВТ_ЧекККМ КАК ВТ_ЧекККМ ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЧекККМ.Товары КАК ЧекККМТовары ПО ВТ_ЧекККМ.ЧекККМ = ЧекККМТовары.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЧекККМ.СкидкиНаценки КАК ЧекККМСкидкиНаценки ПО ВТ_ЧекККМ.ЧекККМ = ЧекККМСкидкиНаценки.Ссылка |
|||
40
Cyberhawk
30.10.18
✎
16:20
|
(33) "на ИТС есть консоль запросов, которая ТЖ настраивает и план показывает" // Дай ссылку
|
|||
41
Вафель
30.10.18
✎
16:21
|
(39) а если тоже самое, но без временной. вроде чуть быстрее должно быть
|
|||
42
Мигрень
30.10.18
✎
16:37
|
(41) Лучше с ВТ, пришлось еще сделать пару промежуточных ВТ, чтобы в результате еще по "КлючуСвязи" построчно соединить.
|
|||
43
olegves
30.10.18
✎
16:38
|
я бы еще здесь ЧекККМТовары.КлючСвязи = ЧекККМСкидкиНаценки.КлючСвязи
включил Индексировать |
|||
44
Мигрень
30.10.18
✎
16:39
|
(43) точно, не помешает
|
|||
45
Мигрень
30.10.18
✎
16:42
|
Говорила мне мама, умножай, сынок, время задачи на три.
|
|||
46
H A D G E H O G s
30.10.18
✎
16:45
|
(43) А я бы не стал.
|
|||
47
Вафель
30.10.18
✎
16:46
|
(44) составных то индексов нет, поэтому не поможет
|
|||
48
Buster007
30.10.18
✎
17:47
|
а индексировать ВТ_ЧекККМ кто будет?
|
|||
49
H A D G E H O G s
30.10.18
✎
18:34
|
(48) Никто. И слава Гейтсу.
|
|||
50
Сияющий в темноте
30.10.18
✎
18:38
|
Соединять две таблицы с таблицей шапки чека, по левому соединению,а там уже отборы по совпадению,иначе будет полное сканирование и очень ме
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |