Oracle索引的使用

2021-06-16 23:43:44 字數 1553 閱讀 8686

最近做資料整合,把其他伺服器上的資料抽取到統一資料庫中,為提高速度,考慮採用索引。

1.索引分類

a) 唯一索引,    作用是資料約束,保證資料唯一,還有就是資料索引,提高查詢效率

b)一般索引,只有資料索引的作用,

2.唯一索引的建立

create unique index 索引名 on    表名(欄位名)

ok,假設有乙個emploeyy表,裡面有乙個empname欄位,我們來為empname新增唯一索引

create unique indexidx_empnameonemployee(empname);

3.一般索引

create index 索引名 on 表名(欄位名)

ok,現在我們為employee的address欄位,新增一般索引

create indexidx_addressonemployee(address);

我們還可以為兩多個字段建立索引

create unique index idx_test on employee(field1,field2);

這樣,為field1,field2新增了唯一索引,field1和field2的組合是唯一的了

還可以指定索引排序

create index idx_test    employee(field1 ,field2 desc);;

4.函式索引

如果在我們的查詢條件使用了函式,那麼索引就不可用了。

可以用建立函式索引的方式,來解決這個問題

例如:select * from product where nvl(price,0.0)>1000.0 ;

這裡,nvl(price,0.0)使用了函式,索引不能利用price欄位上做的索引了

ok,我們來建立函式索引

create index index_price on product(nvl(price,0.0));

5.索引的刪除

drop index 索引名

drop index idx_empname;

6.其它的

唯一索引能極大的提高查詢速度,而且還有唯一約束的作用

一般索引,只能提高30%左右的速度

經常插入,修改,應在查詢允許的情況下,儘量減少索引,因為新增索引,插入,修改等操作,需要更多的時間

可以在order by的字段,where的條件字段,join的關聯字段新增索引

比如:select * from table1   t1

left join table2   t2 on t1.欄位a=t2.欄位b

where t1.欄位c = '值'

order by t1.欄位d

這裡,a,b,c,d欄位,都應該新增索引

oracle的索引使用

最近工作要處理一批統計sql,過程中遇到一些問題,在此分享一下 oracle中最常用的索引就兩種 b樹索引和點陣圖索引,這裡就來簡單說下這兩種索引的使用。b 樹索引在 oracle 中是乙個通用的索引,在建立索引時它就是預設的索引型別。最多可以包括 32列。位圖索引 oracle 為每個唯一鍵建立乙...

oracle 索引使用

管理索引 單例索引 單例索引是基於單個列所建立的索引。create index 索引名 on 表名 列名 復合索引 復合索引是基於兩列或是多列建立的索引。create index emp idx1 on emp ename,job creat index emp idx1 on emp job,en...

小議Oracle索引的使用

索引是由oracle維護的可選結構,為資料提供快速的訪問。準確地判斷在什麼地方需要使用索引是困難的,使用索引有利於調節檢索速度。當建立乙個索引時,必須指定用於跟蹤的表名以及乙個或多個表列。一旦建立了索引,在使用者表中建立 更改和刪除數 據庫時,oracle就自動地維護索引。建立索引時,下列準則將幫助...