程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle之索引(Index)實例講解-基礎

Oracle之索引(Index)實例講解-基礎

編輯:Oracle教程

Oracle之索引(Index)實例講解-基礎


Oracle之索引(Index)實例講解 - 基礎

索引(Index)是關系數據庫中用於存放表中每一條記錄位置的一種對象,主要目的是加快數據的讀取速度和數據的完整性檢查。索引的建立是一項技術性要求非常高的工作。

一般在數據庫設計階段就要考慮到如何設計和創建索引。

1. 創建索引

創建索引的語法:

CREATE [UNIQUE] INDEX [schema.] index
ON [schema.] table (column [ASC | DESC], column [ASC | DESC]...)
[CLUSTER schema.cluster]
[INITRANS n]
[MAXTRANS n]
[PCTFREE  n]
[STORAGE storage]
[TABLESPACE tablespace]
[NO SORT]

關鍵字說明:

UNIQUE: 該參數用來指明所創建的索引為唯一索引。CLUSTER: 該參數為可選參數,用來指定一個聚簇(Hash cluster 不能創建索引)。INITRANS, MAXTRANS: 為可選參數,指定初始和最大的事務入口數。TABLESPACE: 索引的存儲表空間。STORAGE: 存儲參數。PCTFREE: 索引數據塊空閒的百分比。NO SORT: 不排序(存儲時就按照升序進行排序,所以這裡指出不再排序)。

示例:創建一張產品表(tb_product),為該表的product_id列創建索引,以便在使用到該列時提高查詢效率。

create table tb_product
(
  product_id              number
, product_name            varchar2(100)
, product_type            varchar2(20)
, product_unit            varchar2(50)
, product_unit_price      number(10,4)
);
下面代碼用來在product_id列上創建唯一索引:
create unique index product_id_u1 on tb_product(product_id);

2. 修改索引

索引的修改主要由數據庫管理員完成,修改索引主要涉及到修改索引的存儲參數、重建索引、對無用的索引空間進行合並等。

修改索引的語法:

ALTER [UNIQUE] INDEX [user.] index
INITRANS n
MAXTRANS n
REBUILD 
[STORAGE <storage>]
說明:

INITRANS n: 表示一個塊內同時訪問的初始事務的入口數,n為十進制整數。MAXTRANS n: 表示一個塊內同時訪問的最大事務入口數,n為十進制整數。REBUILD: 表示根據原來的索引結構重新建立索引,也就是重新對表進行全表掃描以後創建索引數據。STORAGE <storage>: 表示存儲數據。

示例:

使用ALTER INDEX語句修改索引參數:

ALTER INDEX product_id_u1 REBUILD STORAGE  ( INITIAL 1M NEXT 512K );
使用ALTER INDEX語句修改索引為逆向索引:
ALTER INDEX product_id_u1 REBUILD REVERSE;
使用ALTER INDEX語句合並索引空間:
ALTER INDEX product_id_u1 COALESCE;

3. 刪除索引

可以使用DROP語句刪除索引。

DROP INDEX schema.index;

注:如果表結構被刪除,則與該表相關聯的索引也同時被刪除。

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

如果您們在嘗試的過程中遇到什麼問題或者我的代碼有錯誤的地方,請給予指正,非常感謝!

聯系方式:[email protected]

版權@:轉載請標明出處, 否則追究法律責任!
----------------------------------------------------------------------------------------------------------

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