我有一个流水线表函数,比如
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 秒。
为什么流水线功能这么慢?