SAPфорум.RU
https://sapboard.ru/forum/

Как ускорить выборку с критерием A or B
https://sapboard.ru/forum/viewtopic.php?f=13&t=97353
Страница 1 из 1

Автор:  sonics [ Пт, фев 15 2019, 09:18 ]
Заголовок сообщения:  Как ускорить выборку с критерием A or B

Подскажите, пожалуйста, как можно ускорить выборку.

Существует два селекта: select where a='21' и select where b='22', потом они вставляются loop-ом в одну таблицу.
Отрабатывает относительно быстро.

Мне нужно было, чтобы where a='21' or a='41' и where b='22' or b='42'.
Такая выборка делается почти вечно, как можно по-другому решить этот вопрос?

Или придется делать мне еще два селекта только с 41 и 42?? O_o это вряд ли правильный подход.

Автор:  sonics [ Пт, фев 15 2019, 09:57 ]
Заголовок сообщения:  Re: Очень долгая выборка

Добавил дополнительные два селекта
и два соединения в единую таблицу
стало жутко долго)

как еще можно это сделать?
тут нужен совет :(

Автор:  Malych [ Пт, фев 15 2019, 10:05 ]
Заголовок сообщения:  Re: Очень долгая выборка

ranges:
r_a TYPE RANGE OF (типом а),
r_B TYPE RANGE OF (типом B).

APPEND |IEQ {21} | TO R_A.
APPEND |IEQ {41} | TO R_A.

APPEND |IEQ {22} | TO R_B.
APPEND |IEQ {42} | TO R_B.

Select....
where a in r_a and
b in r_b.

попробуйте так...

Автор:  Malych [ Пт, фев 15 2019, 10:06 ]
Заголовок сообщения:  Re: Очень долгая выборка

data:
r_a type ranges of...
или
Ranges
r_a for ...

Автор:  Saperx [ Пт, фев 15 2019, 13:11 ]
Заголовок сообщения:  Re: Очень долгая выборка

Select …
from table
into corresponding fields of table lt_result
Where a IN ( '21', '41' ).

Select …
from table
appending corresponding fields of table lt_result
Where b IN ( '22', '42' ).

Автор:  olegbash [ Вс, фев 17 2019, 02:49 ]
Заголовок сообщения:  Re: Как ускорить выборку с критерием A or B

sonics написал(а):
Подскажите, пожалуйста, как можно ускорить выборку.

Существует два селекта: select where a='21' и select where b='22', потом они вставляются loop-ом в одну таблицу.
Отрабатывает относительно быстро.

Мне нужно было, чтобы where a='21' or a='41' и where b='22' or b='42'.
Такая выборка делается почти вечно, как можно по-другому решить этот вопрос?

Или придется делать мне еще два селекта только с 41 и 42?? O_o это вряд ли правильный подход.


а какая таблица: примерный размер? навесить индекс на поле - плохая идея?
какая версия системы и база?
и есть ли SQL-трассировка запросов?

Автор:  pberezin [ Пт, фев 22 2019, 09:41 ]
Заголовок сообщения:  Re: Как ускорить выборку с критерием A or B

м.б. автор SELECT FOR ALL ENTRIES IN делает с пустой таблицей, потому и тормозит? Многие абаперы на эти грабли наступают.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/