-- 硬解析的  parse count (hard)
select * from v$sysstat where name like '%parse%';  

select a.value,b.name from v$mystat a, v$statname b 
where a.STATISTIC#=b.STATISTIC# and b.name like '%parse%';

select * from v$sqlarea;
  
select sql_id,sql_text,executions,last_load_time from v$sqlarea   -->首次查询后在v$sqlarea保存父游标且执行次数EXECUTIONS为1        
where sql_text like '%DDDDDD%'
and last_load_time > trunc(sysdate-1/24) order by last_load_time desc;


编码硬解析的改进方法
    1.更改参数cursor_sharing
        参数cursor_sharing决定了何种类型的SQL能够使用相同的SQL area
        CURSOR_SHARING = { SIMILAR | EXACT | FORCE }   
            EXACT      --只有当发布的SQL语句与缓存中的语句完全相同时才用已有的执行计划。
            FORCE      --如果SQL语句是字面量,则迫使Optimizer始终使用已有的执行计划,无论已有的执行计划是不是最佳的。
            SIMILAR    --如果SQL语句是字面量,则只有当已有的执行计划是最佳时才使用它,如果已有执行计划不是最佳则重新对这个SQL
                       --语句进行分析来制定最佳执行计划。
        可以基于不同的级别来设定该参数,如ALTER SESSION, ALTER SYSTEM

 alter system set CURSOR_SHARING=EXACT scope=both; 
 
alter system flush shared_pool; 

相关文章:

  • 2022-12-23
  • 2021-09-13
  • 2021-04-04
  • 2021-05-27
  • 2021-11-27
  • 2021-08-14
猜你喜欢
  • 2021-11-30
  • 2021-06-21
  • 2022-02-21
  • 2022-12-23
  • 2021-10-21
相关资源
相似解决方案