程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 9i索引

編輯:關於Oracle數據庫

  索引是若干數據行的關鍵字的列表,查詢數據時,通過索引中的關鍵字可以快速定位到要訪問的記錄所在的數據塊,從而大大減少讀取數據塊的I/O次數,因此可以顯著提高性能。

  索引的原理

  下面通過查詢數據表“scott.student”的ROWID列為例,在【SQLPlus Worksheet】中執行下面的語句,查詢結果如圖7.38所示。

  ―――――――――――――――――――――――――――――――――――――

  select rowid,student_id,name,professional,birthday,director_id from scott.student;

  ―――――――――――――――――――――――――――――――――――――

  【參見光盤文件】:\第7章\ selectrowid.sql。

  以數據表“scott.student”的索引為例,下面的數據就是以“student_id”數據列為例建立索引後的部分數據。

  ―――――――――――――――――――――――――――――――――――――

  ROWID STUDENT_ID

  ------------------ ----------

  AAAH2oAAIAAAABSAAA 20020101

  AAAH2oAAIAAAABSAAJ 20020102

  AAAH2oAAIAAAABSAAK 20020103

  AAAH2oAAIAAAABSAAL 20020104

  AAAH2oAAIAAAABSAAN 20030102

  AAAH2oAAIAAAABSAAO 20030103

  AAAH2oAAIAAAABSAAP 20030104

  ―――――――――――――――――――――――――――――――――――――

  Oracle 9i支持的索引

  Oracle 9i中的索引可以分為兩大類:B-樹索引和位圖索引。

  表7.9 B-樹索引的分類 名稱含義Non-Unique非惟一索引,默認的B-樹索引,索引列值可以不是惟一的Unique惟一索引,在創建索引時指定“UNIQUE”關鍵字可以創建惟一索引。當建立“主碼約束條件”時也會建立惟一索引,索引列值是惟一的Reverse Key反向關鍵字索引,通過在創建索引時指定“REVERSE”關鍵字,可以創建反向關鍵字索引,被索引的每個數據列中的數據都是反向存儲的,但仍然保持原來數據列的次序Function-based基於函數的索引,對數據列使用表達式,按照表達式結果來創建B-樹索引的各節點,適合特定的,經常使用該表達式進行類似查詢的數據表的索引的組織

  2. 位圖索引

  對“scott.student”數據表的數據列“professional”建立位圖索可能的實例如下。

  ―――――――――――――――――――――――――――――――――――――

  記錄號 professional取值 位圖索引值

  1    軟件工程     1

  2    計算機安全    2

  3    圖形圖像     3

  7    Web安全      2

  ―――――――――――――――――――――――――――――――――――――

  主碼自動建立的索引

  (1)如圖7.40所示。

  (2)出現如圖7.41所示的編輯索引的【一般信息】選項卡。

  如何創建索引

  (1)如圖7.42所示。

  (2)出現如圖7.43所示的創建索引的【一般信息】選項卡。

  (3)切換到圖7.44所示的創建索引的【分區】選項卡。

  (4)切換到圖7.45所示的創建索引的【存儲】選項卡。

  (5)切換到圖7.46所示的創建索引的【選項】選項卡。

  (6)成功創建索引後出現如圖7.47所示界面。

  (7)在【企業管理器】中可以查看創建的索引,如圖7.48所示。

  (8)上述創建索引對應的SQL代碼如下。

  ―――――――――――――――――――――――――――――――――――――

  CREATE INDEX "SCOTT"."姓名字段索引"

  ON "SCOTT"."STUDENT"("NAME")

  TABLESPACE "INDX";

  ―――――――――――――――――――――――――――――――――――――

  【參見光盤文件】:\第7章\ createindex.sql。

  (9)讀者也可以直接在【SQLPlus Worksheet】中執行createindex.sql文件完成索引的創建,如圖7.49所示。

  如何刪除索引

  (1)如圖7.50所示。

  (2)出現如圖7.51所示的【索引刪除確認】界面。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved