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

首頁 > 開發 > 綜合 > 正文

使用索引跳躍式掃描以提高查詢速度

2024-07-21 02:38:48
字體:
來源:轉載
供稿:網友

  索引跳躍式掃描(index skip scan)是Oracle9i的一個新的執行特性,尤其適用于使用連接索引和訪問多值索引的Oracle查詢。讓我們看以下的范例。請注重到以下代碼包含著連接索引:
  
  create index
    sex_emp_id
  on
    emp (sex, emp_id)
  ;
  
  在Oracle9i版本之前,當SQL查詢中包含性別和emp_id時,或者查詢指定性別行的時候才可以使用這一索引。下面的查詢不能夠使用連接索引:
  
  select
    emp_id
  from
    emp
  where
    emp_id = 123;
  
  Oracle9i的索引跳躍式掃描執行規則答應使用連接索引,即使SQL查詢中不指定性別。這一特性使得無需在emp_id行中提供第二個索引。Oracle承認索引跳躍式掃描沒有直接索引查詢速度快,但可以這樣說,相比于整個表掃描(table scan),索引跳躍式掃描的速度要快得多。
  
  當Oracle沒有指明索引跳躍式掃描的內部內容時,我們可以從它的執行規則中判定出,Oracle在內部上生成了多個查詢,這樣就滿足帶有多個子查詢的查詢。
  
  SELECT STATEMENT Optimizer=CHOOSE (Cost=6 Card=1 Bytes=5)
    0 SORT (AGGREGATE)
      1 INDEX (SKIP SCAN) OF 'SEX_EMP_ID' (NON-UNIQUE)
  
  在內部里,Oracle生成了兩個查詢,并連接結果的ROWID表。
  
  selectemp_name from emp_where sex = 'F' and emp_id = 123
  UNION
  select emp_name from emp_where sex = 'M' and emp_id = 123;
  
  使用索引跳躍式掃描的內涵就變得很清楚。
  
  對于高順序鍵(high order key)中的獨特值數目,Oracle的索引跳躍式掃描性能將會降低。假如主列有50個值,Oracle要發出50條查詢才能找回結果。
  
  索引跳躍式掃描只適用于硬盤空間和存儲空間相當緊缺的情況。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 神木县| 大丰市| 翼城县| 瓦房店市| 汝城县| 偏关县| 翁源县| 穆棱市| 怀化市| 敦化市| 息烽县| 望都县| 洪泽县| 隆德县| 郎溪县| 曲阜市| 福州市| 左贡县| 永昌县| 罗田县| 北票市| 碌曲县| 沂源县| 福泉市| 元江| 海林市| 盘锦市| 荆州市| 桂平市| 庆阳市| 屯留县| 东乡县| 双柏县| 保德县| 河源市| 连州市| 都匀市| 临高县| 兴山县| 康马县| 大方县|