在日常管理中,可能有让sql 重新解析的需求,比如使用了绑定变量窥探,但是第一次绑定的执行计划不一定很好,需要重新执行硬解析,这时我们可以使用
dbms_shared_pool.purge
10:43:12 hlb@CRMUAT>create table hlb(id int);
Table created.
10:43:40 hlb@CRMUAT>select * from hlb;
no rows selected
10:44:03 hlb@CRMUAT> select address,hash_value,executions,parse_calls from v$sql where sql_TEXT like 'select * from hlb';
ADDRESS HASH_VALUE EXECUTIONS PARSE_CALLS
---------------- ---------- ---------- -----------
0000000547C72BC0 3989195553 1 1
10:44:26 hlb@CRMUAT> exec dbms_shared_pool.purge('0000000547C72BC0,3989195553','C');
BEGIN dbms_shared_pool.purge('0000000547C72BC0,3989195553','C'); END;
*
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00201: identifier 'DBMS_SHARED_POOL.PURGE' must be declared
ORA-06550