-- 硬解析的 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;