|
Помогите ускорить запрос если возможно | ☑ | ||
---|---|---|---|---|
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) ВЫБОР
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |