国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle客戶端編程

2024-08-29 13:40:59
字體:
來源:轉載
供稿:網友

  一、綁定變量
  使用綁定變量可以減少Oracle對語句的硬分析,加快語句的執行。
  
  樣例程序:VB
  
  沒有使用綁定變量執行1000次 Insert 命令耗時 8.36 秒
  使用綁定變量執行1000次 Insert 命令耗時 2.56 秒
  使用綁定變量的速度為不使用綁定變量的 30%,假如在大量用戶集中執行此命令的情況下,效果更加明顯。
  
  為什么使用綁定變量可以加快數據?
  1、減少了Oracle對語句的分析。Oracle可以在緩存中直接使用上次已分析過的語句。
  2、不需要對語句執行查詢路徑分析。直接使用上次的查詢路徑。
  
  開發中注重事項:
  1、編碼變得煩瑣,但為了以后沒有人找你麻煩,還是煩瑣一些好!
  2、RDO 使用 rdoQuery 對象,ADO使用 Command 對象。java 使用 PReparedStatement。各種開發語言均有此類對象。
  
  二、正確使用索引
   語句 執行時間
  錯誤 SELECT *
   FROM xxy x
   WHERE x.編號=1000000019 1.515秒
  錯誤 SELECT *
   FROM xxy x
   WHERE upper(X.編號)='1000000019' 1.64秒
  正確 SELECT *
   FROM xxy x
   WHERE x.編號='1000000019' 0.062秒
  正確的語句與錯誤語句有何不同之處?
  
  此例說明Oracle的隱式轉換數據功能可能誤導開發員,使開發員寫出蹩腳的SQL語句。
  
  開發中注重事項:
  1、 正確使用索引字段,并要注重查詢語句中的要害字類型與數據庫中索引字段的字段類型一致。
  2、 不要在索引上使用函數。
  3、 盡可能不使用Like、Is Null語句,而使用 >、< 代替。
  
  三、 FROM語句
  語句執行時間
  錯誤 SELECT *
   FROM d_fs fs,djb dj,xxyb xxy
   WHERE dj.方式=fs.方式
    AND fs.類型='什么類型'
    AND dj.編號=xxy.編號 24.844秒
  正確 SELECT *
   FROM djb dj,xxyb xxy,d_fs fs
   WHERE dj.方式=fs.方式
    AND fs.類型='什么類型'
    AND dj.編號=xxy.編號 4.453秒
  
  Oracle的優化方式分為基于成本和基于規則的優化方式。
  在使用基于規則的優化方案的時候,應將記錄數小的表寫在FROM語句的后面。
  
  四、 EXISTS、NOT EXISTS
  盡量不使用 In、Not In,而使用 Exists、Not Exists代替。
   語句 執行時間
  錯誤 SELECT *
   FROM cfxb xd
   WHERE xd.日期 BETWEEN SYSDATE-30 AND SYSDATE
    AND xd.編號 NOT IN (SELECT zb.編號
    FROM cfzb zb) 3.281秒
  正確 SELECT *
   FROM cfxxb xd
   WHERE xd.日期 BETWEEN SYSDATE-30 AND SYSDATE
    AND NOT EXISTS (SELECT 1
    FROM cfzb zb
    WHERE zb.編號=xd.編號) 0.172秒
  
  剛開始使用Exists語句不如In語句直觀,大家習慣一下就可以了。
  
  五、 其它事項
  a) 在select、insert語句中不答應使用 * 代替所有字段,應明確指定字段名稱。
  b) SQL語句中使用到多個表,應在select語句中明確使用表別名引用表中的字段。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 犍为县| 绥中县| 东乡| 洛南县| 山丹县| 武定县| 青海省| 涞水县| 康保县| 长宁县| 岐山县| 专栏| 龙江县| 建德市| 响水县| 奉新县| 拉孜县| 工布江达县| 略阳县| 黄大仙区| 昔阳县| 泾源县| 峨边| 吉安市| 阿合奇县| 华池县| 湘潭县| 沙河市| 全椒县| 沅陵县| 若尔盖县| 铜陵市| 钟祥市| 吉木乃县| 襄樊市| 安图县| 金寨县| 喜德县| 五大连池市| 蕲春县| 泸西县|