Oracle綁定變量在C#.NET中的應用及意義

中文字幕精品无码一区二区-黄色伊人-久久精品无码av-男女插插插视频-日韩bbw-永久影院-三级av免费-美国av导航-99成人在线观看-美腿丝袜一区-激情欧美在线观看

    <font id="0op4q"></font>
    <center id="0op4q"><sub id="0op4q"></sub></center>
  1. <var id="0op4q"><video id="0op4q"></video></var>
    <tbody id="0op4q"><pre id="0op4q"></pre></tbody>

    獲得積分
    資料庫會員登錄
    搜索: [高級搜索]
    下載首頁 | 資源分類 | 下載排行
    您的位置: 首頁 > 程序語言 > .NET
     
    分類導航
    下載排行
    最新資源
    Oracle綁定變量在C#.NET中的應用及意義
    資源大小:11.34 KB 資源類型:文檔
    下載積分: 0
    更多
    -->
    下載統計:總下載:0,本月下載:0,本周下載:0,今日下載:0
    發(fā)表評論 錯誤報告 加入收藏夾
    資源介紹
    Oracle綁定變量在C#.NET中的應用及意義
    一、        什么是綁定變量
             綁定變量(bind variable) :
        select * from emp where empno=:empno;
            是用戶放入查詢中的占位符,它會告訴Oracle“我會隨后為這個變量提供一個值,現在需要生成一個方案,但我實際執(zhí)行語句的時候,會提供應該使用的實際值”。
            實質就是用于替代sql語句中常量的替代變量。綁定變量能夠使得每次提交的sql語句都完全一樣。
    二、        為什么使用綁定變量
    使用綁定變量可以減少硬語法分析,優(yōu)化共享池的使用。在oracle 中,對于一個提交的sql語句,存在兩種可選的解析過程, 一種叫做硬解析,一種叫做軟解析。
       當一個sql語句提交后,oracle會首先檢查一下共享緩沖池里有沒有與之完全相同的語句,如果有的話只須執(zhí)行軟分析即可,否則就得進行硬分析。
    一個硬解析需要經分析、解析、安全檢查 、制定執(zhí)行路徑、優(yōu)化訪問計劃等等許多的步驟。需消耗大量的cpu及資源。
    舉個例子,要查詢編號為001的兒童,下面兩種寫法都可以實現:
    select * from t_child where childid=’001’;//不使用綁定變量
    select * from t_child where childid =: childid;//使用綁定變量
    但是實際應用中經常是查詢編號為001的兒童一次以后,有可能再也不用;接著你有可能查詢兒童’002’,然后查詢’003’等等。這樣每次查詢都是新的查詢,都需要硬解析;
    而第二個查詢語句提供了綁定變量: childid,它的值在查詢執(zhí)行時提供,查詢經過一次編譯后,查詢方案存儲在共享池中,可以用來檢索和重用;在性能和伸縮性方面,這兩者的差異是巨大的,甚至是驚人的;
    若不使用綁定變量,每個查詢的條件不同導致共享池中SQL語句數量太多,重用性極低,加速了SQL語句的老化,導致共享池碎片過多。 共享池中不同的SQL語句數量巨大,根據LRU原則,一些語句逐漸老化,最終被清理出共享池;這樣就導致shared_pool_size 里面命中率下降,共享池碎片增多,可用內存空間不足。而為了維護共享池內部結構,需要使用latch,一種內部生命周期很短的lock,這將使用大量的cpu 資源,使得性能急劇下降。
    不使用綁定變量違背了oracle 的shared pool 的設計的原則,違背了這個設計用來共享的思想。
    下載地址
     下載地址1
    按字母檢索

    下載須知:
    大部份資源無需注冊即可下載
    需要積分的資源要在會員中心注冊會員并用 積分體系中提示的方法賺取積分才能下載。

    免責聲明:
    所有資源只能用于參考學習,不能用于任何商業(yè)用途,否則后果自負!
    主站蜘蛛池模板: 醴陵市| 和林格尔县| 花垣县| 修文县| 洮南市| 邢台市| 安吉县| 奎屯市| 江油市| 鸡西市| 望江县| 商水县| 锦屏县| 海阳市| 通山县| 兴文县| 海原县| 乃东县| 修武县| 南城县| 尚义县| 普安县| 吐鲁番市| 自贡市| 汾西县| 蛟河市| 和林格尔县| 建宁县| 大安市| 白水县| 黎川县| 筠连县| 祁门县| 阿坝| 中超| 即墨市| 莲花县| 荔波县| 二连浩特市| 武胜县| 唐海县|