WHERE
次のような句で関数を呼び出すクエリがあります
SELECT * FROM table_name t WHERE (SELECT xyz_function(t.test) FROM dual) = 'A';
そして、以下の条件に応じて「A」または「B」を返す関数 xyz_function :
SELECT 'A' FROM dual WHERE pTest NOT IN (
a_START_WITH_CONNECT_BY_CLAUSE
MINUS
b_START_WITH_CONNECT_BY_CLAUSE);
pTest
関数に渡すパラメーターは次のとおりです。関数で2つのSTART WITH.. CONNECT BY PRIOR
句を使用しています。
関数は WHERE 句で呼び出されるため、すべての t.test に対して実行されます。
クエリはほぼ 20K のレコードを提供しているため、タイムアウトします。
START WITH.. CONNECT BY
関数内の句が原因で、クエリがタイムアウトしているようです。
START WITH.. CONNECT WITH 句を削除するのを手伝ってくれる人はいますか?