База данных: конвейерные функции - PullRequest
5 голосов
/ 22 мая 2010

Я новичок в концепции конвейерных функций.У меня есть несколько вопросов относительно

С точки зрения базы данных:

  • Что такое функция конвейера?
  • В чем преимущество использования функции конвейера?
  • Какие задачи решаются с помощью функции конвейера?
  • Есть ли какие-либо преимущества оптимизации при использовании функции конвейера?

Спасибо.

1 Ответ

7 голосов
/ 22 мая 2010

Цитируя слово «Спроси у Тома Оракула»:

конвейерные функции - это просто «код, который вы можете представить как таблицу базы данных»

конвейерные функции дают вам (удивительно для меня)) способность

select * from PLSQL_FUNCTION;

каждый раз, когда вы думаете, что можете использовать ее - для выбора * из функции вместо таблицы это может быть «полезно».

Что касается преимуществ: большое преимущество использования функции конвейера заключается в том, что ваша функция может возвращать строки одну за другой, а не строить весь набор результатов в памяти в целом перед его возвратом.

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

Довольно интересный пример с использованием конвейерных функций приведен здесь

То, что кажется хорошим использованием их, является ETL (извлечение / преобразование / загрузка) - , например, см. Здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...