国产探花免费观看_亚洲丰满少妇自慰呻吟_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條查詢才能找回結果。
  
  索引跳躍式掃描只適用于硬盤空間和存儲空間相當緊缺的情況。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 五台县| 古蔺县| 商河县| 库尔勒市| 习水县| 乌什县| 靖州| 呈贡县| 赫章县| 潼南县| 承德县| 东辽县| 灵山县| 年辖:市辖区| 长葛市| 剑川县| 邻水| 宣恩县| 东宁县| 东乡族自治县| 铜川市| 阿图什市| 珲春市| 金川县| 松阳县| 利津县| 颍上县| 保康县| 长顺县| 正安县| 广德县| 杨浦区| 南城县| 木兰县| 二连浩特市| 江安县| 探索| 星子县| 英德市| 祁连县| 大竹县|