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


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

Помогите ускорить запрос если возможно
Я
   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 человек.
Рекламное место пустует