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/ |