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

Помогите ускорить запрос если возможно

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

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

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

Список тем форума
 
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Э. Йодан
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.