一个清理单个sql执行计划的方法----dbms_shared_pool.purge:
#-------首先根据sql_id取出内存地址和hash_value,语句如下
select address, hash_value, sql_text
from v$sqlarea
where sql_id = '3nvuzqdn6ry6x';
#------将内存address和hash_values传入purge执行即可,最后一个参数C为object_type,cursor。
exec dbms_shared_pool.purge('00000000968ED510,1751906525','C');
#------检查是否清空
select *
from v$sqlarea
where sql_id = '3nvuzqdn6ry6x';
dbms_shared_pool的介绍可查看官方文档:
https://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_shared_pool.htm#ARPLS055