|
根据这个问题,在Meterlink上搜索了一下,确实是一个bug,不过没修复的办法:
Does ACS work for the SQL from PL/SQL?
Yes. ACS will work on the SQL started within PL/SQL, however there are a number of cases where it does not. For example:
Bug 14276867 ACS IS NOT WORKING WITH PL/SQL CODE LEADING TO POOR PERFORMANCE OF THE QUERIES
Summary: For queries executed from pl/sql functions ACS monitoring is not on (v$sql.is_bind_sensitive is N) so the cursors can never become bind sensitive so ACS will never work.
Status: Not a Bug
Bug 8357294 adaptive cursor sharing doesn't work for static sql cursors from pl/sql
Summary: For SQL that is embedded in pl/sql and executed via "execute immediate", ACS does not work because PL/SQL caches it's cursors differently to standard cursors.
Status: Unresolved
Bug 9197434 BIND PEEKING NOT HAPPENING WHEN USING DBMS_SQL
Summary Bind peeking does not work with dbms_sql. This is because the relevant driver does not handle the bind code in the right way for this to work and would need an enhancement to do so.
Closed as a duplicate of : Base bug:
Bug 4179405 bind peeking does not work with dbms_sql
Closed as a duplicate of : Base bug:
Bug 13896999 ADAPTIVE CURSOR SHARING IS NOT WORKING AS EXPECTED WITH DYNAMIC PL/SQL
Closed as a duplicate of : Base bug:
Bug 13386678 BIND PEEKING DOES NOT WORK IN DBMS_SQL
Closed, not feasible to fix |
|