遊標引數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
- 中介軟體的引數解析過程
- 帆軟引數
- 軟體效能測試指標引數怎麼擬定指標
- ORACLE SQL解析之硬解析和軟解析OracleSQL
- ORACLE的軟 軟 軟 解析!Oracle
- SOLIDWORKS軟體引數化建模配合技巧Solid
- Shell解析引數
- Oracle的軟解析(soft prase)和硬解析(hard prase)Oracle
- jmeter軟體指標和硬體指標(16.5)JMeter指標
- 標頭檔案包含方式,main函式的引數解析AI函式
- laravel11:中介軟體傳遞引數Laravel
- 初始化引數遊標之cursor_sharing
- 解析型別引數型別
- Curl 命令引數解析
- CNN模型引數解析CNN模型
- 使用 Python 解析引數Python
- canvas transform引數解析CanvasORM
- js解析url引數JS
- ImageJ軟體使用教程(三):目標計數
- Hystrix 配置引數全解析
- SpringMVC請求引數解析SpringMVC
- python引數解析argparse用法Python
- 選購交換機的引數依據和主要的引數指標詳解指標
- [20241121]測試軟軟解析遇到的疑惑.txt
- [20200416]關於軟軟解析的問題.txt
- python argparse(引數解析模組)Python
- 軟體專案管理 6.7.引數估演算法專案管理演算法
- 軟體測試學習資料——Jmeter引數化2JMeter
- 軟體測試學習資料——Jmeter引數化1JMeter
- 和數軟體取得8項軟體著作權和2項專利證書
- Bash變數和引數變數
- python變數和引數Python變數
- 中介軟體:還在使用trim過濾請求引數嗎?
- PTGUI全景合成軟體使用教程之鏡頭引數設定GUI
- Java對比有引數和無引數Java
- 認識Spring引數解析器Spring
- SpringBoot自定義控制層引數解析Spring Boot
- SpringBoot是如何解析引數的Spring Boot