Oracle Хранимая функция против присоединения в запросах - PullRequest
0 голосов
/ 30 апреля 2020

Я хочу получить данные из двух таблиц.
Две таблицы связаны со ссылкой на внешний ключ. У меня есть два следующих способа сделать это. Но не знаю, какой из них лучше.

  1. Вызов хранимой функции из запроса
  2. Использование предложения объединения

Что будет лучший способ? Я использую технологии: Oracle12 c, Java, IBatis. Так каков наилучший способ достичь этого?

1 Ответ

1 голос
/ 30 апреля 2020

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

Использование функции - PL / SQL - вызывает переключение контекста (с SQL на PL / SQL и обратно на SQL на PL / SQL ...), что будет брать ресурсы.

Вы ничего не заметите, если есть небольшой набор данных, но - поскольку количество задействованных строк становится больше, время выполнения, вероятно, пострадает во втором варианте.

Если вы будете тестировать его, запустите каждый вариант несколько раз из-за возможного кэширования.

...