Имя: Пароль:
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) ВЫБОР