綁定變量的優缺點及使用場合
優點:
可以在library cache中共享遊標,避免硬解析以及與之相關的額外開銷
在大批量數據操作時將呈數量級來減少閂鎖的使用,避免閂鎖的競爭
缺點:
綁定變量被使用時,查詢優化器會忽略其具體值,因此其預估的準確性遠不如使用字面量值真實,尤其是在表存在數據傾斜(表上的數據非均勻分佈)的列上會提供錯誤的執行計劃。從而使得非高效的執行計劃被使用。
使用場合:
OLTP
在OLTP系統中SQL語句重複執行頻度高,但處理的數據量較少,結果集也相對較小,尤其是使用表上的索引來縮小中間結果集,其
解析時間通常會接近或高於執行時間,因此該場合適合使用綁定變量。
OLAP
在OLAP系統中,SQL語句執行次數相對較少,但返回的數據量較大,因此多數情況下傾向於使用權標掃描更高效,其SQL語句執行時
間遠高於其解析時間,因此使用綁定變量對於總響應時間影響不大。而且增加生成低效執行計劃的風險。即在在OLAP系統中使用字
面量的性能高於使用綁定變量。
注意:
對於實際的數據庫對象,如(表,視圖,列等),不能使用綁定變量替換,只能替換字面量。如果對象名是在運行時生成的,則需要對其
用字符串拼接,同時,sql只會匹配已經在共享池中相同的對象名。
Oracle中使用綁定變量的優點和缺點
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.