--硬解析的 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
=
exact
--只有當發布的sql語句與快取中的語句完全相同時才用已有的執行計畫。
force --
如果sql語句是字面量,則迫使optimizer始終使用已有的執行計畫,無論已有的執行計畫是不是最佳的。
similar --
如果sql語句是字面量,則只有當已有的執行計畫是最佳時才使用它,如果已有執行計畫不是最佳則重新對這個sql
--語句進行分析來制定最佳執行計畫。
可以基於不同的級別來設定該引數,如alter session, alter system
alter system set cursor_sharing=exact scope=both;
altersystem flush shared_pool;
Oracle硬解析 軟解析 軟軟解析 理解
硬解析 library cache 中不存在父游標或者存在父游標,但是沒有子游標 軟解析 library cache中存在父游標 子游標 軟軟解析 會話pga中存在session cursor 一條新的sql查詢,開始硬解析,會先將sql語句經過ascii轉換,通過hash演算法去遍歷library...
Oracle的硬解析和軟解析
提到軟解析 soft parse 和硬解析 hard parse 就不能不說一下oracle對sql的處理過程。當你發出一條sql語句交付oracle,在執行和獲取結果前,oracle對此sql將進行幾個步驟的處理過程 1 語法檢查 syntax check 檢查此sql的拼寫是否語法。2 語義檢查...
Oracle的硬解析和軟解析
提到軟解析 soft prase 和硬解析 hard prase 就不能不說一下oracle對sql的處理過程。當你發出一條sql語句交付oracle,在執行和獲取結果前,oracle對此sql將進行幾個步驟的處理過程 1 語法檢查 syntax check 檢查此sql的拼寫是否語法。2 語義檢查...