I have a pipelined table function like
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;
I test the query in SQL Developer via select * from TABLE(FOO(<PARAMETERS_LIST>)) WHERE ROWNUM <= 200
. It takes SQL Developer 9 seconds to return data.
While it take 0.9 seconds to result when running <A LITTLE BIT COMPLEX QUERY WITH PARAMETERS_LIST>
directly in SQL Developer.
Why is the pipelined function so slow?