遊標引數shared_cached_cursors和軟軟解析
繼續整理關於遊標 解析 繫結變數。這裡說下幾個引數,裡面內容有點深,自己也是迷迷糊糊的!
Oracle 10G下
SQL> show parameter cursor;
NAME TYPE VALUE
cursor_sharing string EXACT
cursor_space_for_time boolean FALSE
open_cursors integer 300
session_cached_cursors integer 20
session_cached_cursors:
一個sql語句會首先在uga中快取區存放與之關聯的遊標,然後開啟建立遊標 解析遊標 執行遊標 返回遊標 關閉遊標等。而一旦關閉這個session,這個uga中相關聯的session cursor就被釋放了。而session_cached_cursors引數標識的是一個session可以快取多個cursor數量,既是儲存在pga的sql語句遊標的總數量,從而實現後續相同sql的軟軟解析。
軟軟解析:
Session cursor cache是一塊記憶體區域,儲存關閉了cursor,當一個cursor關閉之後,oracle檢查此cursor的請求是否超過三次,如果超過三次就會放入session cache cursor記憶體區域中,下次在parse的時候可以從session cursor cache直接呼叫,從而實現軟軟解析(session cache cursor的管理也是使用lRU演算法)
而session_cached_cursors引數也就是session快取的cursor數量,控制了session cursor cache的大小,則值越大,相應的記憶體消耗也越大。
SQL> select name,value from v$sysstat where name like '%cursor%';
NAME VALUE
---------------------------------------------------------------- ----------
opened cursors cumulative 28899
opened cursors current 46
session cursor cache hits 21217
session cursor cache count 2865
cursor authentications 485
其中的session cursor cache hits就是軟軟解析的次數。
這裡摘要下http://www.cnblogs.com/rootq/archive/2009/08/27/1554748.html的對軟軟解析的解釋:
設定pga端的cache list的長度,當session_cached_cursors設定為0時,pga的cache list長度為0,這時候當sga中的cursor關閉的時候它相關的library cache handle的lock位被清0,從v$open_cursor裡看不到這個被關閉的cursor,它服從於shared pool的lru機制,當shared pool需要新的buffer空間時,它將會被flush出shared pool。
當session_cached_cursors設定為非0值時,pga的cache list長度為session_cached_cursors值的大小,同時pga cache list將會保留一份複製,這時候即使sga中的cursor關閉的時候它相關的library cache handle始終被加了null mode lock,當shared pool空間緊張時library cache handle始終將會被保留在shared pool中.而新的應用訪問這個cursor的時候會直接去自己的pga cache list裡面搜尋
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25362835/viewspace-1056520/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle中的遊標、硬解析、軟解析、軟軟解析、解析失敗Oracle
- 草稿 - 遊標,硬解析,軟解析 等
- 父遊標 子游標和軟硬解析記載-02
- Oracle - 共享遊標、父子游標、硬軟解析Oracle
- ORACLE 硬解析和軟解析 軟軟解析Oracle
- 中介軟體的引數解析過程
- 軟解析和硬解析
- PL/SQL-遊標和遊標變數的使用SQL變數
- 軟體效能測試指標引數怎麼擬定指標
- Oracle的硬解析和軟解析Oracle
- 徹底弄懂oracle硬解析、軟解析、軟軟解析Oracle
- ORACLE SQL解析之硬解析和軟解析OracleSQL
- Oracle SQL的硬解析和軟解析OracleSQL
- ORACLE的軟 軟 軟 解析!Oracle
- Oracle引數檔案解析——引數解析Oracle
- 漫遊 javax.servlet 請求引數解析(jetty 實現)JavaServletJetty
- Oracle遊標型別作為傳入傳出引數Oracle型別
- SQLSERVER儲存過程如何寫帶引數的遊標SQLServer儲存過程
- twemproxy的引數解析和監控
- 深入解析 ES6:Rest 引數和引數預設值REST
- ORACLE中帶引數、REF遊標及動態SQL例項OracleSQL
- SQL大致流程、SPM、軟軟、軟、硬解析SQL
- 【筆記】遊標變數筆記變數
- Shell解析引數
- Oracle的軟解析(soft prase)和硬解析(hard prase)Oracle
- SOLIDWORKS軟體引數化建模配合技巧Solid
- Oracle遊標共享,父遊標和子游標的概念Oracle
- 硬解析和物理讀取與軟解析和邏輯讀取
- ImageJ軟體使用教程(三):目標計數
- 標頭檔案包含方式,main函式的引數解析AI函式
- Oracle 硬解析與軟解析Oracle
- 邊旅遊邊賺錢!數字遊民離不開遠端控制軟體
- CNN模型引數解析CNN模型
- js解析url引數JS
- canvas transform引數解析CanvasORM
- 解析型別引數型別
- ThreadPoolExecutor 引數解析thread
- ogg引數解析