Oracle中使用綁定變量的優點和缺點

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章