關於在oracle中是使用索引的幾點注意事項

2021-04-21 22:11:42 字數 637 閱讀 5936

例如一列c1在能取值 '甲' '乙' '丙' '丁' 且均勻分布,則即使在該列建立了索引,資料庫執行時也未必會使用;

但是如果取值 『丁』 的記錄極少,在選擇條件為 c1=『丁』,根據基於代價的優化器如果能獲得表的統計資訊的話,是會利用上索引而不做全表掃瞄的。

例如  select × from × where c1<>123 ;

則即使在列 c1 上建立了索引,資料庫在執行語句時也不會使用 ,應該替換為 c1> 123 or c1<123

如果c1 列用字元型 ,我們的語句常常會這樣寫, where c1=6352  ,

一般沒有大問題 ,因為資料庫為我們自動將記錄的c1 列轉化為數字 ,所以該句等效於 where to_number(c1)=6352 ,一般情況下都能得到想要的結果,但是如果這裡對c1列建立了索引,執行時是不會用上索引的,因為該列在條件中是作為乙個函式的引數而存在的,所以必須寫成where c1='6352  ' 才能用到索引

有語句 select × from t1 , t2  where   t1.c1=t2.c2  ,如果對t1 的c1 建了索引而沒有對t2 的c2建立索引,那麼該索引也不會提高效率,因為資料庫會預設(根據條件中列出現的順序)全表掃瞄t1.c1列,對每條記錄跟t2,c2相匹配,所以必須對t2.c2建立索引才有效

oracle關於索引

一.說說你對索引的認識 索引的結構 對dml影響 對查詢影響 為什麼提高查詢效能 索引有b tree bit cluster等型別。oracle使用了乙個複雜的自平衡b tree結構 通常來說,在表上建立恰當的索引,查詢時會改進查詢效能。但在進行插入 刪除 修改時,同時會進行索引的修改,在效能上有一...

關於oracle索引

table access by index rowid index single value index range scan full scan fast full scan skip scan index join bitmap conversation 簡單的說索引分 單塊所掃和多塊索引掃。單...

RPM索引在Artifactory中是如何工作

rpm是用於儲存和管理rpm軟體包的倉庫。我們在rhel和centos系統上常用的yum安裝就是安裝的rpm軟體包,而yum的源就是乙個rpm軟體包的倉庫。jfrog artifactory是成熟的rpm和yum儲存庫管理器。jfrog的官方wiki頁面提供有關artifactory rpm儲存庫的...