<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    oracle 綁定變量(bind variable)

    Posted on 2009-06-15 19:20 林光炎 閱讀(646) 評論(0)  編輯  收藏 所屬分類: ORACLE
    oracle 中,對于一個提交的sql語句,存在兩種可選的解析過程, 一種叫做硬解析,一種叫做軟解析.
    一個硬解析需要經解析,制定執行路徑,優化訪問計劃等許多的步驟.硬解釋不僅僅耗費大量的cpu,更重要的是會占據重要的們閂(latch)資源,嚴重的影響系統的規模的擴大(即限制了系統的并發行), 而且引起的問題不能通過增加內存條和cpu的數量來解決。
    之所以這樣是因為門閂是為了順序訪問以及修改一些內存區域而設置的,這些內存區域是不能被同時修改。當一個sql語句提交后,oracle會首先檢查一下共享緩沖池(shared pool)里有沒有與之完全相同的語句,如果有的話只須執行軟分析即可,否則就得進行硬分析。
    而唯一使得oracle 能夠重復利用執行計劃的方法就是采用綁定變量。綁定變量的實質就是用于替代sql語句中的常量的替代變量。綁定變量能夠使得每次提交的sql語句都完全一樣。
    普通sql語句:

    SELECT fname, lname, pcode FROM cust WHERE id = 674;
    SELECT fname, lname, pcode FROM cust WHERE id = 234;
    SELECT fname, lname, pcode FROM cust WHERE id = 332;
    含綁定變量的sql 語句:
    SELECT fname, lname, pcode FROM cust WHERE id = :cust_no;

    Sql*plus 中使用綁定變量:
    sql> variable x number;
    sql> exec :x := 123;
    sql> SELECT fname, lname, pcode FROM cust WHERE id =:x;

     

    pl/sql
    pl/sql很多時候都會自動綁定變量而無需編程人員操心,即很多你寫得sql語句都會自動利用綁定變量,如下例所示:


    create or replace procedure dsal(p_empno in number)
    as
    begin
    update emp
    set sal=sal*2
    where empno = p_empno;
    commit;
    end;
    /

    也許此時你會想要利用綁定變量來替代p_empno,但是這是完全沒有必要的,因為在pl/sql中,引用變量即是引用綁定變量。
    但是在pl/sql中動態sql并不是這樣。
    在vb,java以及其他應用程序中都得顯式地利用綁定變量。
    對于綁定變量的支持不僅僅限于oracle,其他RDBMS向SQLSERVER也支持這一特性。
    但是并不是任何情況下都需要使用綁定變量, 下面是兩種例外情況:
    1.對于隔相當一段時間才執行一次的sql語句,這是利用綁定變量的好處會被不能有效利用優化器而抵消
    2.數據倉庫的情況下。

    posts - 104, comments - 33, trackbacks - 0, articles - 0

    Copyright © 林光炎

    主站蜘蛛池模板: 国产精品亚洲综合久久| 免费在线观看一级片| 亚洲成aⅴ人在线观看| 亚洲av午夜国产精品无码中文字 | 亚洲精品无码久久一线| 免费羞羞视频网站| 免费能直接在线观看黄的视频 | 中文字幕无码播放免费| 国产日韩AV免费无码一区二区 | 免费毛片a在线观看67194| 国产精品一区二区三区免费| AV激情亚洲男人的天堂国语| 7777久久亚洲中文字幕| 亚洲成A∨人片在线观看无码| 亚洲av最新在线网址| 亚洲中文字幕无码久久综合网| 免费一级毛片在线播放| 日日AV拍夜夜添久久免费| 免费精品久久久久久中文字幕 | 亚洲成人在线免费观看| 免费国产叼嘿视频大全网站| 一级女人18片毛片免费视频| 黄网站色成年片大免费高清| 毛片亚洲AV无码精品国产午夜| 亚洲人成未满十八禁网站| 中文字幕乱码亚洲无线三区| 亚洲乱码卡一卡二卡三| 亚洲日产2021三区| 亚洲丝袜中文字幕| 亚洲色欲色欲www| 亚洲粉嫩美白在线| 亚洲精品久久无码av片俺去也 | 美女视频黄是免费的网址| 最近中文字幕2019高清免费| 亚洲国产av玩弄放荡人妇| 亚洲人成网站色7799| 精品久久久久久久久亚洲偷窥女厕| 亚洲精品国产首次亮相| 美女黄频免费网站| EEUSS影院WWW在线观看免费| 成人无码精品1区2区3区免费看 |