Вход | Регистрация



Из-за чего может тормозить простой запрос по документам?

Из-за чего может тормозить простой запрос по документам?
Я
   Мигрень
 
30.10.18 - 14:20
УТ 11.4. Из-за чего может тормозить простой запрос по документам?

ВЫБРАТЬ
    ЧекККМТовары.Номенклатура КАК Номенклатура,
    ЧекККМТовары.СуммаАвтоматическойСкидки КАК Скидка,
    ЧекККМСкидкиНаценки.СкидкаНаценка КАК СкидкаНаценка,
    ЧекККМТовары.Продавец КАК Продавец,
    ЧекККМТовары.Ссылка.Склад КАК Склад
ИЗ
    Документ.ЧекККМ.Товары КАК ЧекККМТовары
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЧекККМ.СкидкиНаценки КАК ЧекККМСкидкиНаценки
        ПО ЧекККМТовары.Ссылка = ЧекККМСкидкиНаценки.Ссылка
            И ЧекККМТовары.КлючСвязи = ЧекККМСкидкиНаценки.КлючСвязи
ГДЕ
    ЧекККМТовары.Ссылка.Дата >= &ДатаНачала
    И ЧекККМТовары.Ссылка.Дата <= &ДатаОкончания
 
 
   1Сергей
 
1 - 30.10.18 - 14:23
я бы сначала отобрал обе тч по периоду, а потом соединял
   Мыш
 
2 - 30.10.18 - 14:24
(0) Вот здесь тормозит:
ЧекККМТовары.Ссылка.Дата >= &ДатаНачала
    И ЧекККМТовары.Ссылка.Дата <= &ДатаОкончания
   sitex
 
3 - 30.10.18 - 14:25
(2) "Между" видать уже не в моде использоваться
   ssh2006
 
4 - 30.10.18 - 14:25
(0) попробуй снчала отобрать ссылки ЧекККМ по условию в ВТ
   Мигрень
 
5 - 30.10.18 - 14:26
Ага, сейчас будет пробовать с ВТ и "Между"
   nicxxx
 
6 - 30.10.18 - 14:28
(3) SQL серверу не важно, все равно будет скан диапазона
   Eiffil123
 
7 - 30.10.18 - 14:56
(2) Ага. И это не совсем кошерно:

ЧекККМТовары.Ссылка.Склад КАК Склад
   Eiffil123
 
8 - 30.10.18 - 14:57
(5) зачем с ВТ. Нужно из запроса убрать ссылку:


ВЫБРАТЬ
    ЧекККМТовары.Номенклатура КАК Номенклатура,
    ЧекККМТовары.СуммаАвтоматическойСкидки КАК Скидка,
    ЧекККМСкидкиНаценки.СкидкаНаценка КАК СкидкаНаценка,
    ЧекККМТовары.Продавец КАК Продавец,
    ЧекККМТовары.Склад КАК Склад
ИЗ
    Документ.ЧекККМ.Товары КАК ЧекККМТовары
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЧекККМ.СкидкиНаценки КАК ЧекККМСкидкиНаценки
        ПО ЧекККМТовары.Ссылка = ЧекККМСкидкиНаценки.Ссылка
            ГДЕ
    ЧекККМТовары.Дата >= &ДатаНачала
    И ЧекККМТовары.Дата <= &ДатаОкончания
   Вафель
 
9 - 30.10.18 - 14:57
(7) а как нужно?
   Вафель
 
10 - 30.10.18 - 14:58
(8) разве в товарах есть дата?
 
 Рекламное место пустует
   Cyberhawk
 
11 - 30.10.18 - 14:58
Внутреннее замени левым
   dezss
 
12 - 30.10.18 - 14:59
(8) юморист)
   dezss
 
13 - 30.10.18 - 15:02
(0) запрос в коде тормозит или в консоле?
какое результирующее количество записей?

и да, это лучше поменять:
    ЧекККМТовары.Ссылка.Склад КАК Склад
на
    ЧекККМ.Склад КАК Склад


еще одну внутренне сделать, думаю, сможешь)))
Ну и это заодно поменять, так как уже ж соединились с самим документом:
    ЧекККМТовары.Ссылка.Дата >= &ДатаНачала
    И ЧекККМТовары.Ссылка.Дата <= &ДатаОкончания
   Eiffil123
 
14 - 30.10.18 - 15:10
(12) да, это я накосячил. Думал, соединяются таблица документов и одной ТЧ. А тут две ТЧ.
   Buster007
 
15 - 30.10.18 - 15:10
1) открываешь профайлер

н) Профит!
   Timon1405
 
16 - 30.10.18 - 15:12
(13)
>>    ЧекККМТовары.Ссылка.Склад КАК Склад
>>на
>>    ЧекККМ.Склад КАК Склад

и где у ТС в запросе таблица "ЧекККМ"?
   Мигрень
 
17 - 30.10.18 - 15:12
(13) Везде тормозит, и в СКД и в консоли. Результирующих записей 227, время выполнения консоль показывает 51 сек.
   Timon1405
 
18 - 30.10.18 - 15:14
можно попробовать перенести ЧекККМТовары.Ссылка.Дата >= &ДатаНачала
    И ЧекККМТовары.Ссылка.Дата <= &ДатаОкончания 
в условия соединения
   Cool_Profi
 
19 - 30.10.18 - 15:18
План запроса что показывает? 57 секунд для 227 записей это немного многовато....
   Мигрень
 
20 - 30.10.18 - 15:19
(19) Это вообще ужос
   Мигрень
 
21 - 30.10.18 - 15:20
Попробую сделать две ВТ для двух ТЧ и соединиться в СКД
   Cool_Profi
 
22 - 30.10.18 - 15:20
(20) План-то что говорит?
   Мигрень
 
23 - 30.10.18 - 15:22
(22) Что-тов в этой консоли я не найду где план запросов смотреть, да он этот план мне ничего и не скажет, поскольку я в этом плане ничего не пойму
   Cool_Profi
 
24 - 30.10.18 - 15:25
(23) Мдя... В скуле лови... Или ТЖ настраивай... Или пограммиста зови...
   Мигрень
 
25 - 30.10.18 - 15:27
Пока выяснил только, что виновато соединение таблиц, а не условие отбора. Левое или внутреннее  - не важно.
   dezss
 
26 - 30.10.18 - 15:28
(16) я там же написал "еще одну внутренне сделать, думаю, сможешь)))"
   Мигрень
 
27 - 30.10.18 - 15:28
(26) разыменование через две точки здесь не причем, я его выбросил, тормоза не из-за этого.
   Мигрень
 
28 - 30.10.18 - 15:30
Кстати, замена внутреннего соединения на левое увеличивает время запроса на порядок. Такие дела.
   FIXXXL
 
29 - 30.10.18 - 15:30
(25) сделай ВТ для отбора ссылок по периоду
ТЧ бери уже по отобранным ссылкам
   Мигрень
 
30 - 30.10.18 - 15:31
(29) вот я так и хочу
   FIXXXL
 
31 - 30.10.18 - 15:31
(28) потому, что условия надо писать в связях
   Мигрень
 
32 - 30.10.18 - 15:31
(31) ну может быть, сейчас попробую
   DexterMorgan
 
33 - 30.10.18 - 15:32
(24) Да уже давно на ИТС есть консоль запросов, которая ТЖ настраивает и план показывает
 
 
   Мигрень
 
34 - 30.10.18 - 15:34
(33) ага, вот именно, сам нифика не знает :)
   DexterMorgan
 
35 - 30.10.18 - 15:34
(32) на тч ЧекККМСкидкиНаценки по дате отбор же не устанавливается
   DexterMorgan
 
36 - 30.10.18 - 15:34
(32) Или там не нужен?
   DexterMorgan
 
37 - 30.10.18 - 15:34
(32) ДОпиши просто отбор по дате для второй тч
   Мигрень
 
38 - 30.10.18 - 15:36
(37) !!!
заработало вроде :)
   Мигрень
 
39 - 30.10.18 - 15:56
вот так в результате заработало норм:

ВЫБРАТЬ
    ЧекККМ.Ссылка КАК ЧекККМ
ПОМЕСТИТЬ ВТ_ЧекККМ
ИЗ
    Документ.ЧекККМ КАК ЧекККМ
ГДЕ
    ЧекККМ.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ЧекККМТовары.Номенклатура КАК Номенклатура,
    ЧекККМТовары.СуммаАвтоматическойСкидки КАК Скидка,
    ЧекККМСкидкиНаценки.СкидкаНаценка КАК СкидкаНаценка,
    ЧекККМТовары.Продавец КАК Продавец,
    ВТ_ЧекККМ.ЧекККМ.Склад КАК Склад
ИЗ
    ВТ_ЧекККМ КАК ВТ_ЧекККМ
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЧекККМ.Товары КАК ЧекККМТовары
        ПО ВТ_ЧекККМ.ЧекККМ = ЧекККМТовары.Ссылка
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЧекККМ.СкидкиНаценки КАК ЧекККМСкидкиНаценки
        ПО ВТ_ЧекККМ.ЧекККМ = ЧекККМСкидкиНаценки.Ссылка
   Cyberhawk
 
40 - 30.10.18 - 16:20
(33) "на ИТС есть консоль запросов, которая ТЖ настраивает и план показывает" // Дай ссылку
   Вафель
 
41 - 30.10.18 - 16:21
(39) а если тоже самое, но без временной. вроде чуть быстрее должно быть
   Мигрень
 
42 - 30.10.18 - 16:37
(41) Лучше с ВТ, пришлось еще сделать пару промежуточных ВТ, чтобы в результате еще по "КлючуСвязи" построчно соединить.
   olegves
 
43 - 30.10.18 - 16:38
я бы еще здесь ЧекККМТовары.КлючСвязи = ЧекККМСкидкиНаценки.КлючСвязи

включил Индексировать
   Мигрень
 
44 - 30.10.18 - 16:39
(43) точно, не помешает
   Мигрень
 
45 - 30.10.18 - 16:42
Говорила мне мама, умножай, сынок, время задачи на три.
   H A D G E H O G s
 
46 - 30.10.18 - 16:45
(43) А я бы не стал.
   Вафель
 
47 - 30.10.18 - 16:46
(44) составных то индексов нет, поэтому не поможет
   Buster007
 
48 - 30.10.18 - 17:47
а индексировать ВТ_ЧекККМ кто будет?
   H A D G E H O G s
 
49 - 30.10.18 - 18:34
(48) Никто. И слава Гейтсу.
 
 Рекламное место пустует
   Сияющий в темноте
 
50 - 30.10.18 - 18:38
Соединять две таблицы с таблицей шапки чека, по левому соединению,а там уже отборы по совпадению,иначе будет полное сканирование и очень ме


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует