База данных: конвейерные функции
Я новичок в концепции конвейерных функций. У меня есть несколько вопросов относительно
С точки зрения базы данных:
- Что на самом деле является функцией конвейера?
- В чем преимущество использования функции конвейера?
- Какие проблемы решаются с помощью функции конвейера?
- Есть ли какие-либо преимущества оптимизации использования функции конвейера?
Благодарю.
1 ответ
Процитирую "Спроси у Тома Оракула":
конвейерные функции - это просто "код, который вы можете представить как таблицу базы данных"
конвейерные функции дают вам (удивительно для меня) способность
select * from PLSQL_FUNCTION;
всякий раз, когда вы думаете, что можете использовать его - чтобы выбрать * из функции, а не из таблицы, это может быть "полезно".
Что касается преимуществ: большое преимущество использования функции конвейера состоит в том, что ваша функция может возвращать строки один за другим, а не строить весь набор результатов в памяти в целом перед его возвратом.
Вышесказанное дает очевидную оптимизацию - экономия памяти от чего-то, что в противном случае могло бы вернуть большой набор результатов
Довольно интересный пример использования конвейерных функций здесь
То, что кажется хорошим использованием их, является ETL (извлечение / преобразование / загрузка) - например, см. Здесь