oracle走強制索引的形式

2021-08-16 02:22:59 字數 659 閱讀 8674

最近半年一直接觸oracle,走強制索引的場景越來越多,很多表加了索引看sql的執行計畫(pl/sql developer中的快捷鍵f5)發現還是很慢,就像沒有走索引一樣。

這裡查了下強制索引的形式,一下這段進攻參考:

首先要看你的oracle優化器採用的是rbo還是cbo,

(1)如果使用的是rbo的話,會按照規則順序來進行的.

(2)如果使用的是cbo的話,那麼可以使用hint方式進行修改。

語法:select /*+ index(table indexname)*/

如果查詢語句中,表用到別名時,上邊語句中的table一定要是別名,否則不走執行強制索引

select /*+index(t idx_date)*/ 

from student t  

where t.stunum > 00000001

and t.stunum <  32000010

group by t.class

ps:檢視執行計畫,使用"select * from table(dbms_xplan.display)"  explain plan命令後得到的執行計畫也是可以的。還有一種通過sqlplus輸入:

sql> set autotrace on

sql> select * from dual; 也是可以檢視的。

ORACLE的強制索引

在一些場景下,可能oracle不會自動走索引,這時候,如果對業務清晰,可以嘗試使用強制索引,測試查詢語句的效能。以emp表為例 先在emp表中建立唯一索引,如圖。普通搜尋 select from emp t檢視執行計畫 f5 可以看到,是走的全表掃瞄。使用強制索引,在select 後面加上 中間加上...

oracle強制索引使用

強制索引格式 select tablename.from tablename table alias where fieldname 說明 index table alias indexname 必須出現在select 之後,字段之前 tablename 為表名,如果sql中表有別名,則必須使用表的...

主鍵與索引的區別 ( 強制索引)

主鍵是表中的乙個或多個字段,它的值用於惟一地標識表中的某一條記錄.使用索引可快速訪問資料庫表中的特定資訊。索引是對資料庫表中一列或多列的值進行排序的一種結構,只有當經常查詢索引列中的資料時,才需要在表上建立索引。索引占用磁碟空間,並且降低新增 刪除和更新行的速度。當然索引也有好處就是查詢速度快,它利...