abaper:
Во-первых, нужно опредлиться какие цели ты преследуешь для оптимизации запроса. Не устраивает текущее быстродействие?
Мне, например, не очень нравятся многоэтажные джойны из-за их громоздкости. Но это дело вкуса. Хороший с точки зрения быстродействия результат всегда получается после длительного тюнинга и как минимум 3х-4х вариантов извлечения данных.
Что сразу бросается в глаза - where clause. Если таблицы s_* заполняются через select-options, допускающим многократный выбор, то пользователю пара пустяков ввести такой критерий выборки, который приведет к полному перебору одной из указанных там таблиц.
Коррелированный подзапрос ничего сильно не замедлит, потому как выполнится по вторичному индексу. Ну, и сортировку результирующей выборки лучше выполнить на abap'e. Можно просто объявить lt_sel_data как sorted table.
И потом, проанализируй в среднем количество выбираемых данных, которые будут делать пользователи. Если в результате запроса, как правило, выбирается несколько десятков записей, то такой join отнюдь не оптимальный выбор.
|
|