Имя: Пароль:
1C
 
Помогите ускорить запрос если возможно
0 Shur1cIT
 
03.10.16
15:27
Гружу почти милион строк, при получании строки "Дозировка" запросом ищу его в справочнике и в том числе в аналогах. Пытаюсь понять есть ли возможность убыстрить его работу?

ВЫБРАТЬ
    DSM_Дозировки.Ссылка
ПОМЕСТИТЬ ОсновнойПоиск
ИЗ
    Справочник.DSM_Дозировки КАК DSM_Дозировки
ГДЕ
    DSM_Дозировки.СтрокаПоиска = &СтрокаПоиска
    И DSM_Дозировки.ПометкаУдаления = ЛОЖЬ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ЕСТЬNULL(DSM_ДозировкиАналоги.Ссылка, ОсновнойПоиск.Ссылка) КАК Дозировка
ИЗ
    ОсновнойПоиск КАК ОсновнойПоиск
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.DSM_Дозировки.Аналоги КАК DSM_ДозировкиАналоги
        ПО ОсновнойПоиск.Ссылка = DSM_ДозировкиАналоги.Дозировка
1 cybfyv
 
03.10.16
15:29
строки поиска в тз и уже по нему поиск
2 polosov
 
03.10.16
15:29
(0) Запрос в цикле?
3 Shur1cIT
 
03.10.16
15:31
(2) к сожалению да, далее если не нашел то мне необходимо создать его и вернуть ссылку,жаль что в запросе невозможно новые объекты создавать...
4 cybfyv
 
03.10.16
15:32
индекс есть по полю "СтрокаПоиска"?
5 cybfyv
 
03.10.16
15:33
а по полю Дозировка?
6 Shur1cIT
 
03.10.16
15:33
(3) (2) можно конечно найти скопом что найдеться, а то что не нашлось вернуть запросом и проствм циклом создавать
7 Shur1cIT
 
03.10.16
15:35
(5) стоит, всеравно долго когда много записей...
8 cybfyv
 
03.10.16
15:36
уьери временную таблицу
9 piter3
 
03.10.16
15:36
избежать дублей необходимо?
10 Shur1cIT
 
03.10.16
15:39
(9) да дублей много причем из за мусора которое не удаёться убрать, даже отдельную строку поиска пришлось делать дабы хранить там значение ощищеное частично от мусора инаже вообще жесть.
11 Димитрий1с
 
03.10.16
15:41
(0) Выгрузи таблицу в массив и засунт его в запрос. То чего не будет обработай цыклом и создай!
12 Shur1cIT
 
03.10.16
15:47
(11) перед поиском наименование "Дозировка" очищаю от мусора в запросе это не реально, надо гнать цикл по массиву, далее запрос, потом создание того что не нашлось, потом это все дело надо объёденить и упорядочить, потом только грузить сами данные опять же в цикле.... очень много телодвижений думаю долше выйдет
13 piter3
 
03.10.16
15:52
а нельзя список подготовить сначала,а потом уже думать,что загружать.
14 Cyberhawk
 
03.10.16
15:53
"очень много телодвижений думаю долше выйдет" // Думай дальше
15 Shur1cIT
 
03.10.16
15:54
(13) думал об этом, коли народ говорит что быстрее будет то буду пробывать
16 piter3
 
03.10.16
15:55
(15) с 1 лимоном запросов в цикле почти все будет быстрее)
17 Alexor
 
03.10.16
16:01
А не проще Левое соединение убрать.
В одном запросе искать Ссылку и Аналог. отсортировать по Аналогу убыванию.
Тогда в выборке по идее первым будет искомый результат.
18 cybfyv
 
03.10.16
16:07
(17) аналогов может не быть
19 Shur1cIT
 
03.10.16
16:10
как бы серваку не поплохело милион строк сначало передай во временной таблице , а потом еще столькоже верни,но уже с сылками... хотя можно попытаться на порции поделить, но это опять же время-ресурсы
20 ks_83
 
03.10.16
16:30
(18) ВЫБОР