oracle索引的5種使用模式

2021-05-26 07:49:19 字數 2019 閱讀 1474

索引的使用對資料庫的效能有巨大的影響。

共有五類不同的使用模式。

1。index unique scan    效率最高,主鍵或唯一索引

2。index full scan      有順序的輸出,不能並行讀索引

3。index fast full scan  讀的最塊,可以並行訪問索引,但輸出不按順序

4。index range scan      給定的區間查詢

5。index skip scan       聯合索引,不同值越少的列,越要放在前面

--實驗後的總論。

能用唯一索引,一定用唯一索引

能加非空,就加非空約束

一定要統計表的資訊,索引的資訊,柱狀圖的資訊。

聯合索引的順序不同,影響索引的選擇,盡量將值少的放在前面

只有做到以上四點,資料庫才會正確的選擇執行計畫。

conn system/manager

grant select any dictionary to scott;

conn scott/tiger

drop table t1 purge;

create table t1 as select * from dba_objects;

analyze table t1 compute statistics;

create index it1 on t1(object_type);

set autot traceonly

select distinct object_type from t1;

將是全表掃瞄,為什麼不使用索引呢?因為索引中不能含有null值,

如果使用索引就可能產生不正確的結果。

--增加非空約束

alter table t1 modify (object_type not null);

select distinct object_type from t1  ;

使用index fast full scan方式查詢資料

-- select  object_type from t1;

使用index fast full scan,因為不需要排序

select  object_type from t1 order by 1;

使用index full scan,因為要按照順序輸出

select  object_type from t1 where object_type='table';

使用index range scan

--使用非唯一索引

create index i2t1 on t1(object_id);

select * from t1 where object_id=3762;

使用index range scan,因為資料庫不知道是否唯一

--使用唯一索引

drop index i2t1;

create unique index i2t1 on t1(object_id);

使用index unique scan,因為資料庫知道是唯一的

--跳躍的掃瞄索引

create index i3t1 on t1(object_type,object_name);

select * from t1 where object_name='emp';

select object_name from t1 where object_name='emp';

使用index skip scan,因為資料庫知道可以跳過object_type,雖然object_name在第二個列。

--聯合索引的順序不同,影響索引的選擇,盡量將值少的放在前面

drop index i3t1;

drop index it1;

create index i3t1 on t1(object_name,object_type);

select * from t1 where object_type='table';

計畫為全表掃瞄。

oracle索引的5種使用模式

索引的使用對資料庫的效能有巨大的影響。共有五類不同的使用模式。1。index unique scan 效率最高,主鍵或唯一索引 2。index full scan 有順序的輸出,不能並行讀索引 3。index fast full scan 讀的最塊,可以並行訪問索引,但輸出不按順序 4。index ...

oracle index的5種使用模式

索引的使用對資料庫的效能有巨大的影響。共有五類不同的使用模式。1。index unique scan 效率最高,主鍵或唯一索引 2。index full scan 有順序的輸出,不能並行讀索引 3。index fast full scan 讀的最塊,可以並行訪問索引,但輸出不按順序 4。index ...

oracle 5種b 樹索引掃瞄方式

index scan 索引掃瞄index lookup 我們通常說的一般索引都是b樹索引 平衡樹 有以下特性 1 葉子節點關鍵字為資料庫值和rowid,兄弟節點間鏈指標相連 字節點滿了,則向父節點申請空間,一直疊加 2 根 分支節點關鍵字儲存鍵值範圍 資料庫值範圍 分支節點兄弟節點間鏈指標相連,父子...