中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么 理解ORACLE的游標共享

發布時間:2021-11-08 14:23:22 來源:億速云 閱讀:161 作者:iii 欄目:關系型數據庫

這篇文章主要講解了“怎么 理解ORACLE的游標共享”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么 理解ORACLE的游標共享”吧!

游標共享(cursor sharing)指的是share cursor的共享

做到游標共享很簡單,使用綁定變量就可以實現,但是會遇到下面兩個問題

1、開發人員在開發時,未使用綁定變量,這是如果要用綁定變量,就會大量更改sql.

2、使用了綁定變量,但是由于綁定變量窺探的影響,會使某些解析樹和執行計劃不合時宜

針對上面兩個問題,分別用兩種游標共享來解決

1、常規游標共享 ,解決問題1

通過參數cursor_sharing啟用系統綁定變量

exact  不啟用綁定變量

similar 只對安全的謂語條件啟用,所謂的安全,就是執行計劃不會隨著這個值的變化而發生變化,比如主鍵列的等值查詢,而范圍類的查詢則是不安全的,比如大于,小于,like ,這是一個過時的值,任何時候都不要設置為這個值

force 啟用綁定變量,要在不改代碼的情況下,使那些where 字句或者values子句(insert) 共享相同的執行計劃和解析,可以用這個值。

2、自適應游標共享

11g中引入了自適應游標共享

bind sensitive 指某個含有綁定變量的目標SQL執行計劃可能隨著綁定變量輸入值的變化而變化。當滿足下列三個條件時,目標SQL對應的child cursor 會被標記為bind sensitive .

1)啟用綁定變量窺探

2)該SQL使用了綁定變量

3)該SQL是不安全的謂語條件(比如范圍查詢,目標列有直方圖統計信息的等值查詢)

bind aware 確定含有綁定變量的目標SQL執行計劃會隨著綁定變量輸入值的變化而變化,滿足下列兩個條件,目標SQL對應的child cursor 會被標記為bind aware

1)已被標記為bind sensitive

2)該SQL接下來的兩次執行,對應的runtime統計信息跟硬解析時的runtime統計信息相比差異較大。

v$sql中的三列:is_bind_sensitive   is_bind_aware  is_shareable

自適應游標共享相關的兩個視圖:v$sql_cs_statistics   v$sql_cs_selectivity

v$sql_cs_statistics顯示指定child_cursor 的runtime 統計信息

v$sql_cs_selectivity 顯示指定的,已被標記為bind_aware的child_cursor中存儲的含綁定變量的謂語條件對應的可選擇率范圍。

自適應游標的整體執行過程:

1、sql第一次執行,硬解析,然后根據一系列條件(有沒有使用綁定變量,cursor_sharing的值,綁定變量列有沒有直方圖,等值查詢還是范圍查詢等)來判斷是否將child_cursor標記為bind_sensitive,如果已標記,會把執行該SQL的runtime統計信息額外存儲在child cursor中

2、第二次執行該SQL,會用軟解析,并重用之前的解析樹和執行計劃

3、第三次執行,如果之前child_cursor已經被標記為bind_sensitive,而且第二次,第三次執行該sql的runtime統計信息和硬解析時的runtime統計信息相差過大,則會重新硬解析該SQL,同時生成一個新的child cursor ,并把該child cursor標記為bind_aware。

4、對于標記為bind aware的sql ,再一次執行時,會根據謂語條件中綁定變量的可選擇率來選擇硬解析還是軟解析。判斷條件是,該選擇率位于該SQL硬解析時同名謂語條件在v$sql_cs_statistics中的選擇率范圍內,則用軟解析,反之則用硬解析。

感謝各位的閱讀,以上就是“怎么 理解ORACLE的游標共享”的內容了,經過本文的學習后,相信大家對怎么 理解ORACLE的游標共享這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

马边| 南皮县| 阿坝县| 红桥区| 嘉义市| 上栗县| 秦皇岛市| 临潭县| 精河县| 泾源县| 韩城市| 岳阳市| 彩票| 浏阳市| 阿勒泰市| 古丈县| 昭通市| 民县| 普兰县| 抚顺市| 崇阳县| 广宁县| 德钦县| 朝阳区| 新乐市| 肥东县| 江都市| 杭州市| 无极县| 治多县| 湘乡市| 泰州市| 图片| 伊宁县| 吉安市| 宜丰县| 宜兰县| 商丘市| 米脂县| 上栗县| 宜宾市|