国产精选一区二区不卡,小黄片成人无码在线,国产精品夫妇激情欧美

午夜在线视频一区二区-亚洲一区成人免费电影-超碰欧美一区二区三区-大香蕉大香蕉日本大香蕉


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

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

      免責聲明:
      所有資源只能用于參考學習,不能用于任何商業用途,否則后果自負!