oracle引數-cursor_sharing
EXACT: 只令完全相同的 SQL 語句共享一個遊標。預設值: EXACT[@more@]
cursor_sharing:說明: 控制可以終止共享相同的共享遊標的 SQL 語句型別。值範圍:強制: 強制表達方式不同但語句意思相同的語句共享一個遊標。
EXACT: 只令完全相同的 SQL 語句共享一個遊標。預設值: EXACT
若存在欄位的 histograms ,則每次是不同的值的時候都產生硬解析 ,若不存在 histograms,則不產生硬解析。換句話說,當表的欄位被分析過存在histograms的時候,similar 的表現和exact一樣,當表的欄位沒被分析,不存在histograms的時候,similar的表現和force一樣。
這樣避免了一味地如force一樣轉換成變數形式,因為有histograms的情況下轉換成變數之後就容易產生錯誤的執行計劃,沒有利用上統計資訊。而exact呢,在沒有histograms的情況下也要分別產生硬解析,這樣的話,由於執行計劃不會受到資料分佈的影響(因為沒有統計資訊)重新解析是沒有實質意義的。而similar則綜合了兩者的優點。
如果應用程式沒有使用繫結變數,而且修改應該程式的代價很大,那麼有時候採用折中的方式,在Oracle上設定CURSOR_SHARING為FORCE。這樣強制系統採用繫結變數。但是將引數設定為FORCE會導致很多的問題
從Oracle9i開始,CURSOR_SHARING的值增加了一個SIMILAR,Oracle推薦使用SIMILAR來代替FORCE,當引數設定為SIMILAR時,Oracle不會強制將全部的變數進行繫結,而是根據一些預定義的設定進行判斷。
無論是FORCE引數還是改進後的SIMILAR引數,都是解決繫結變數的替代方式,這些方式都可能帶來一些bug以及很多未知的東西。只有有可能就應該透過修改程式的方法去設定繫結變數。
案例:問題:在程式中select某個表的資料很慢,但是相關的sql在sql*plus中卻非常快就出來了。分析:1.檢察欄位索引(無問題)
2.執行計劃判斷有誤(DBMS_STATS)
3.CURSOR_SHARING(Oracle強制繫結變數,而且這樣作會減少很多CPU負荷,因為它減少了SQL的重複硬解析次數)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7490392/viewspace-1008101/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 的 cursor_sharing引數Oracle
- ORACLE中Cursor_sharing引數詳解Oracle
- Oracle一些引數的理解 cursor_sharingOracle
- 小心設定cursor_sharing=force引數
- 補充:小心設定cursor_sharing=force引數
- 有關引數cursor_sharing=similar的測試MILA
- Oracle引數-隱藏引數Oracle
- oracle 引數Oracle
- oracle cursor_sharing [轉]Oracle
- Oracle引數檔案解析——引數解析Oracle
- Oracle 核心引數Oracle
- Oracle UNDO引數Oracle
- Oracle引數大全Oracle
- oracle引數配置Oracle
- oracle 效能引數Oracle
- ORACLE核心引數Oracle
- oracle引數整理Oracle
- Oracle引數檔案 各引數解釋Oracle
- 修改cursor_sharing引數引發的ORA-00600: internal error code, arguments: [qctcte1], [0], []..Error
- 【實驗】shared_pool的sql命中率--cursor_sharing引數研究SQL
- Oracle:PDB 引數管理Oracle
- Oracle rman 配置引數Oracle
- Oracle 引數檔案Oracle
- ORACLE 配置event引數Oracle
- Oracle檢視引數Oracle
- Oracle隱式引數Oracle
- Oracle 隱含引數Oracle
- ORACLE隱含引數Oracle
- oracle重要初始引數Oracle
- Oracle 各版本引數/隱藏引數 介紹Oracle
- Oracle動態、靜態引數引數修改規則Oracle
- Linux核心引數以及Oracle引數調整(updated)LinuxOracle
- 繫結變數和cursor_sharing變數
- oracle 安全性引數Oracle
- Oracle UNDO引數詳解Oracle
- Oracle引數修改小結Oracle
- 談談ORACLE核心引數Oracle
- Oracle expdp 排除表引數Oracle