亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

sql中索引不會被用到的幾種情況

系統(tǒng) 1905 0

1、查詢謂詞沒有使用索引的主要邊界,可能會導(dǎo)致不走索引。比如,你查詢的是SELECT * FROM T WHERE Y=XXX;假如你的T表上有一個包含Y值的組合索引,但是優(yōu)化器會認(rèn)為需要一行行的掃描會更有效,這個時候,優(yōu)化器可能會選擇TABLE ACCESS FULL,但是如果換成了SELECT Y FROM T WHERE Y = XXX,優(yōu)化器會直接去索引中找到Y(jié)的值,因為從B樹中就可以找到相應(yīng)的值。
2、如果在B樹索引中有一個空值,那么查詢諸如SELECT COUNT(*) FROM T 的時候,因為HASHSET中不能存儲空值的,所以優(yōu)化器不會走索引,有兩種方式可以讓索引有效,一種是SELECT COUNT(*) FROM T WHERE XXX IS NOT NULL或者是不能為空。
3、如果在T表上有一個索引Y,但是你的查詢語句是這樣子SELECT * FROM T WHERE FUN(Y) = XXX。這個時候索引也不會被用到,因為你要查詢的列中所有的行都需要被計算一遍,因此,如果要讓這種sql語句的效率提高的話,在這個表上建立一個基于函數(shù)的索引,比如CREATE INDEX IDXFUNT ON T(FUN(Y));這種方式,等于Oracle會建立一個存儲所有函數(shù)計算結(jié)果的值,再進(jìn)行查詢的時候就不需要進(jìn)行計算了,因為很多函數(shù)存在不同返回值,因此必須標(biāo)明這個函數(shù)是有固定返回值的。
4、索引不適用于隱式轉(zhuǎn)換的情況,比如你的SELECT * FROM T WHERE Y = 5 在Y上面有一個索引,但是Y列是VARCHAR2的,那么Oracle會將上面的5進(jìn)行一個隱式的轉(zhuǎn)換,SELECT * FROM T WHERE TO_NUMBER(Y) = 5,這個時候也是有可能用不到索引的。
5、在Oracle的初始化參數(shù)中,有一個參數(shù)是一次讀取的數(shù)據(jù)塊的數(shù)目,比如你的表只有幾個數(shù)據(jù)塊大小,而且可以被Oracle一次性抓取,那么就沒有使用索引的必要了,因為抓取索引還需要去根據(jù)rowid從數(shù)據(jù)塊中獲取相應(yīng)的元素值,因此在表特別小的情況下,索引沒有用到是情理當(dāng)中的事情。
6、很長時間沒有做表分析,或者重新收集表狀態(tài)信息了,在數(shù)據(jù)字典中,表的統(tǒng)計信息是不準(zhǔn)確的,這個情況下,可能會使用錯誤的索引,這個效率可能也是比較低的。


在《Oracle專家編程》Pdf中,有一個非常不錯的例子,在本機(jī)實際做一下,能對索引有一個更深的印象,大致就是
CREATE TABLE FOO(USERNAME VARCHAR2(100) PRIMARY KEY,USERID VARCHAR2(100));
產(chǎn)生一堆數(shù)據(jù),然后查詢SQL
CREATE TABLE FOOBAK SELECT * FROM FOO ORDER BY USERID DESC;
然后給USERNAME加上主鍵索引,然后查詢SQL
能夠看到兩個使用了USERNAME pk ?的索引,產(chǎn)生了不同的執(zhí)行計劃,這個實實在在的說明了表的物理結(jié)構(gòu)實實在在的影響了執(zhí)行計劃。

sql中索引不會被用到的幾種情況


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本亚洲精品久久 | 久热在线视频精品网站 | 中文字幕在线日本 | 国内精品视频成人一区二区 | 一级欧美在线的视频 | 香蕉综合在线 | 欧美一级全部免费视频 | 欧美精品成人一区二区在线观看 | 国产精品柳州莫菁身材四 | 4htv影院永久免费在线地址 | 国产成人一级片 | 日本视频久久 | 欧美另类亚洲 | 啪啪网站色大全免费 | 国产成人不卡亚洲精品91 | 久久黑丝 | 国产成人+亚洲欧洲 | 最新男同志freevideos | 91官网| 久久午夜宅男免费网站 | 欧美日韩福利视频一区二区三区 | 韩国日本三级在线观看 | 久久99久久99精品免观看麻豆 | 国产精品视频成人 | 黄色片在线观看网址 | 91视频一88av| 久久精品免费视频6 | 特级毛片免费视频 | 九九热视频这里只有精品 | 午夜在线成人 | 欧美日韩亚洲精品一区二区三区 | 激情婷婷网 | 再猛点深使劲爽日本免费视频 | 免费观看一区二区 | 婷婷国产天堂久久综合五月 | 四虎国产精品永免费 | 99热久久久这里只有精品免费 | 成年视频免费 | 欧美成人一区二区三区在线视频 | 香蕉视频成人 | 国产视频一区二区三区四区 |