oracle添加索引語句 如何創(chuàng)建oracle函數(shù)索引?
如何創(chuàng)建oracle函數(shù)索引?索引基于函數(shù)。R表1(column1)上的常規(guī)索引IDX當(dāng)從表1中選擇*時使用索引,其中column1=XXX被執(zhí)行。函數(shù)索引:在表1上創(chuàng)建索引p_IDX(substr(
如何創(chuàng)建oracle函數(shù)索引?
索引基于函數(shù)。R表1(column1)上的常規(guī)索引IDX當(dāng)從表1中選擇*時使用索引,其中column1=XXX被執(zhí)行。函數(shù)索引:在表1上創(chuàng)建索引p_IDX(substr(column1,0,5)) 在執(zhí)行substr(column1,0,5)=XXX的表1中選擇*時使用該索引。但當(dāng)從表1中選擇*時,將不使用索引,其中column1=XXX被執(zhí)行。一般來說,最好不要建立函數(shù)索引。
Oracle中創(chuàng)建了索引,什么樣的原因可能使索引不能正常使用?
在下列情況下,索引將失敗
1。使用索引列上的函數(shù)。如substr、decode、instr等,可以通過建立函數(shù)索引來解決索引列的操作。
2. 索引列的加、減、乘、除也會導(dǎo)致索引失效
3。成本分析表明,訪問的表太小,全表掃描的消耗比使用索引少。
4. 使用<>,not in和not exist,我們認(rèn)為結(jié)果集在大多數(shù)情況下都很大。通常,如果結(jié)果集大于5%-15%,我們不使用指數(shù),而是使用FTS。
5. 分開>,&Lt.
6、像“%”百分號排在第一位。
7. 對復(fù)合索引中非第一位置索引列的單個引用。
8. 當(dāng)字符類型字段是數(shù)字時,不會在where條件中添加引號。
9. 當(dāng)變量使用times變量并且表的字段使用date變量時。反之亦然。
10. 如果索引失敗,可以重建索引并聯(lián)機(jī)重建。
11. 只要創(chuàng)建了索引列(無論順序如何),B樹索引為null將不走,為非null將走,位圖索引為null,為非null將走,聯(lián)合索引為非null將走