У меня есть конвейерная табличная функция, например
FUNCTION FOO
(
<PARAMETERS_LIST>
) RETURN T_TAB PIPELINED
AS
BEGIN
FOR rec IN
(<A LITTLE BIT COMPLEX QUERY WITH PARAMETERS_LIST>)
LOOP
PIPE row(T_WF(<COLUMN_LIST>));
END LOOP;
RETURN;
END FOO;
Я тестирую запрос в SQL Developer через select * from TABLE(FOO(<PARAMETERS_LIST>)) WHERE ROWNUM <= 200
. Для возврата данных SQL Developer требуется 9 секунд.
Хотя при запуске <A LITTLE BIT COMPLEX QUERY WITH PARAMETERS_LIST>
непосредственно в SQL Developer требуется 0,9 секунды.
Почему конвейерная функция такая медленная?
select * from TABLE(FOO(<PARAMETERS_LIST>)) WHERE ROWNUM <= 50
, результат производительности тот же. Далее я проанализирую план выполнения. - person comphilip   schedule 20.03.2015