婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Oracle Index索引無效的原因與解決方法

Oracle Index索引無效的原因與解決方法

熱門標(biāo)簽:圖像地圖標(biāo)注 海南400電話哪里辦理 分布式呼叫中心 南寧人工智能電銷機(jī)器人費用 400電話是不是免費申請 安陽外呼系統(tǒng)免費 貴陽電話外呼系統(tǒng)哪家好 濟(jì)南地圖標(biāo)注公司 呼倫貝爾智能手機(jī)地圖標(biāo)注

索引無效原因

最近遇到一個Oracle SQL語句的性能問題,修改功能之前的運行時間平均為0.3s,可是添加新功能后,時間達(dá)到了4~5s。雖然幾張表的數(shù)據(jù)量都比較大(都在百萬級以上),但是也都有正確創(chuàng)建索引,不知道到底慢在了哪里,下面展開調(diào)查。

經(jīng)過幾次排除,把問題范圍縮小在索引上,首先在確定索引本身沒有問題的前提下,考慮索引有沒有被使用到,那么新的問題來了,怎么知道指定索引是否被啟用。

判斷索引是否被執(zhí)行

1. 分析索引

即將索引至于監(jiān)控狀態(tài)下,對索引進(jìn)行分析。如下對 ID_TT_SHOHOU_HIST_002 索引進(jìn)行分析

alter index ID_TT_SHOHOU_HIST_002 monitoring usage;

2. 查看v$object_usage視圖中記錄的信息

select * from v$object_usage;

字段依次為:

•INDEX_NAME --索引名

•TABLE_NAME --表名

•MONITORING --是否被監(jiān)控

• USED --是否被啟用

•START_MONITORING --監(jiān)控開始時間

•END_MONITORING --監(jiān)控結(jié)束時間

如上圖,雖然索引已經(jīng)被引用,但是速度依舊很慢,莫非是雖然啟用了索引,但是又被其他的一些原因拖慢了速度,繼續(xù)調(diào)查。

調(diào)查途中,收集到一些Oracle 數(shù)據(jù)庫不走索引的原因分享給大家

不走索引的原因

1. 在索引列上使用函數(shù)時不會使用索引

例如常見的, TO_CHAR 、 TO_DATE 、 TO_NUMBER 、 TRUNC ...等等。

此時的解決辦法可以使用 函數(shù)索引 ,顧名思義就是把使用函數(shù)后的字段整體當(dāng)成索引中的字段。

如下圖中的 TO_CHAR(SHOHOU_DATE, 'YYYYMMDD') 就是一個函數(shù)索引,因為日期字段中含有時分秒,進(jìn)行日期比較的時候,必須轉(zhuǎn)化成固定的格式。

CREATE INDEX ID_TT_SHOHOU_HIST_003
ON TT_SHOHOU_HIST
(DEL_FLG,TO_CHAR(SHOHOU_DATE, 'YYYYMMDD'), SHOHOU_ID)
TABLESPACE SALESPA_INDEX

2. 索引的列進(jìn)行隱式的類型轉(zhuǎn)換

SELECT * FROM TABLE WHERE INDEX_COLUM = 5

上面語句中的 INDEX_COLUM 字段類型為 VARCHAR2 ,這時就會發(fā)生隱式類型轉(zhuǎn)換,類似于

SELECT * FROM TABLE WHERE TO_NUMBER(INDEX_COLUM) = 5

3. WHERE 子句中使用不等于操作

不等于操作包括: > , != , NOT colum >= ? , NOT colum = ?

替代方式可以使用OR, colum > 0 =====> colum > 0 or colum 0;

4. 使用 IS NULL 和 IS NOT NULL

替代方式:函數(shù)索引

通過 nvl(b,c) 將為空的字段轉(zhuǎn)為不為空的c值,再在函數(shù)nvl(b,c)上建立函數(shù)索引

轉(zhuǎn)換前

SELECT * FROM A WHERE B = NULL

轉(zhuǎn)換后

SELECT * FROM A WHERE NVL(B,C) = C

5. 組合索引

組合索引:由多個列構(gòu)成的索引。如

CREATE INDEX INDEX_EMP ON EMP (COL1,COL2,COL3,...)

INDEX_EMP 則為復(fù)合索引, COL1 為引導(dǎo)列。進(jìn)行查詢時,可以使用 WHERE COL1 = ? ,也可以使用 WHERE COL1 = ? AND COL2 = ? ,這樣的限制條件都會使用索引,但是 WHERE COL2 = ? ,不會使用索引,所以限制條件中包含引導(dǎo)列時,該限制條件才會使用組合索引。

經(jīng)過一番調(diào)查,我使用的SQL語句檢索條件中對時間列進(jìn)行 TO_CHAR(TTSH.SHOHOU_DATE, 'YYYYMMDD') 格式化日期,去除掉時分秒。再建立函數(shù)索引后仍然沒有起到優(yōu)化加速的效果,仔細(xì)觀察發(fā)現(xiàn)在使用TO_CHAR格式化時間之后,又進(jìn)行TO_DATE轉(zhuǎn)為時間格式和其他子查詢的字段進(jìn)行比較。然后很快想到,建立一個 TO_DATE(TO_CHAR(TTSH.SHOHOU_DATE, 'YYYYMMDD'), 'YYYYMMDD') 這樣的函數(shù)索引,結(jié)果缺失提高了不少的運行速度,從4~5s縮短到了0.5s左右。

但是這只是在PL/SQL軟件中運行SQL提高了速度,實際項目運行仍然是4~5s,使用語句查看索引的使用狀況時,發(fā)現(xiàn)并沒有使用索引,但是在PL/SQL軟件中確實調(diào)用了索引,這至今都是未解之謎,如果有大神知道原因希望能幫我解答一下這個疑問。

既然不能自動調(diào)用,只能強(qiáng)制讓SQL走指定索引了,強(qiáng)制的方法如下

在 SELECT 語句后加入 /*+INDEX(TTSH ID_TT_SHOHOU_HIST_002)*/ ,其中 TTSH 是表的別名(當(dāng)表有別名的時候,必須在索引前加入表的別名)

SELECT /*+INDEX(TTSH ID_TT_SHOHOU_HIST_002)*/ 
TO_DATE(TO_CHAR(TTSH.SHOHOU_DATE, 'YYYYMMDD'), 'YYYYMMDD') AS SHOHOU_DATE 
FROM TT_SHOHOU_HIST TTSH
WHERE ...

至此,SQL的效率問題已經(jīng)解決了,但是這不是最好的解決方案。

首先,目前的索引中已經(jīng)存在包含 TO_CHAR(TTSH.SHOHOU_DATE, 'YYYYMMDD') 的函數(shù)索引,又再創(chuàng)建一個 TO_DATE(TO_CHAR(TTSH.SHOHOU_DATE, 'YYYYMMDD'), 'YYYYMMDD') ,看著就很難受

其次,強(qiáng)制使用索引的方法需要在SQL中指定索引名,假如數(shù)據(jù)庫中的索引名發(fā)生變更,還需去更改SQL。

最好的方法是把索引字段的TO_DATE去掉,統(tǒng)一使用TO_CHAR的索引。

AND CAL.CALENDER = TO_DATE(TO_CHAR(TTSH.SHOHOU_DATE, 'YYYYMMDD'), 'YYYYMMDD')

上面的部分語句因為 CALENDER 字段是DATE類型,所以比較時使用了TO_DATE,其實只要把 CALENDER 轉(zhuǎn)化成CHAR類型就行了,雖然看起來要改動的地方很多,其實解決了更大的問題。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • oracle索引的測試實例代碼
  • oracle數(shù)據(jù)庫關(guān)于索引建立及使用的詳細(xì)介紹
  • oracle使用索引與不使用索引的性能詳析
  • ORACLE檢查找出損壞索引(Corrupt Indexes)的方法詳解
  • Oracle復(fù)合索引與空值的索引使用問題小結(jié)
  • oracle分區(qū)索引的失效和重建代碼示例
  • Oracle關(guān)于重建索引爭論的總結(jié)
  • Oracle 分區(qū)索引介紹和實例演示
  • Oracle CBO優(yōu)化模式中的5種索引訪問方法淺析
  • oracle索引總結(jié)

標(biāo)簽:合肥 許昌 涼山 南充 郴州 滁州 遼源 焦作

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle Index索引無效的原因與解決方法》,本文關(guān)鍵詞  Oracle,Index,索引,無效,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Oracle Index索引無效的原因與解決方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于Oracle Index索引無效的原因與解決方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲国产岛国毛片在线| 亚洲精品国产a| 91精品国产乱| 91免费观看视频| 91麻豆精品国产91久久久更新时间| 欧美视频精品在线观看| 2017欧美狠狠色| 亚洲黄色免费电影| 三级在线观看一区二区| 亚洲女人小视频在线观看| 在线观看日产精品| 国产精品美女久久久久久久久 | www.欧美.com| 欧美一级在线视频| 亚洲少妇30p| 成人激情免费视频| 99久久er热在这里只有精品66| 91麻豆精品91久久久久同性| 国产精品国产三级国产a| 国产综合色在线| 欧美日韩视频在线第一区| 中文字幕中文在线不卡住| 国内成人精品2018免费看| 日韩亚洲欧美综合| 日韩精品三区四区| 91精品福利在线一区二区三区| 亚洲精品成人悠悠色影视| 亚洲欧美在线高清| 亚洲欧洲av一区二区三区久久| 亚洲国产精品久久一线不卡| 色香蕉久久蜜桃| 99精品偷自拍| 亚洲国产精品一区二区久久恐怖片| 亚洲欧美另类小说视频| 国产揄拍国内精品对白| 久久亚洲二区三区| 日本亚洲视频在线| 美女一区二区三区| 三级欧美在线一区| 国产麻豆日韩欧美久久| 久久综合九色综合欧美98| 国产98色在线|日韩| 中文字幕欧美三区| 91免费版pro下载短视频| 粉嫩aⅴ一区二区三区四区| 日本一区二区免费在线观看视频| 欧美日韩久久久一区| 夜夜夜精品看看| 久久综合国产精品| 日韩视频在线永久播放| 色94色欧美sute亚洲线路一ni| 久久精工是国产品牌吗| 1024成人网| 26uuu久久天堂性欧美| 欧美精品日日鲁夜夜添| 欧美亚日韩国产aⅴ精品中极品| 国产在线精品视频| 欧美日韩国产精选| 99久久精品99国产精品| 欧美三级三级三级| 国产·精品毛片| 国产精品一区二区在线观看网站| 久久se这里有精品| 国产露脸91国语对白| av电影天堂一区二区在线| 欧美日韩国产大片| 91精品国产综合久久福利软件 | 91福利小视频| 日韩欧美在线影院| 自拍视频在线观看一区二区| 懂色一区二区三区免费观看| 欧美日本一区二区| 欧美性大战久久久| 中文一区在线播放| 欧美成人精精品一区二区频| 欧美性猛交xxxx乱大交退制版| 国产91丝袜在线播放九色| 亚洲色图制服诱惑| 中文字幕精品一区二区精品绿巨人| 欧美一级二级三级蜜桃| 欧美一卡2卡3卡4卡| 日韩激情视频在线观看| 欧美色老头old∨ideo| 亚洲四区在线观看| 91在线播放网址| 国产精品久久久久久久久晋中| 日本美女视频一区二区| 欧美精品乱人伦久久久久久| 亚洲影视在线播放| 在线观看www91| caoporn国产精品| 久久五月婷婷丁香社区| 日韩一级免费观看| 国产欧美一区二区在线| 中文字幕一区不卡| 日本 国产 欧美色综合| 国产一区二区三区av电影| 国产福利一区二区三区视频在线| 久久国产日韩欧美精品| 国产91富婆露脸刺激对白| 激情图片小说一区| 精品在线你懂的| 国产精品高潮呻吟久久| 专区另类欧美日韩| 亚洲一二三区在线观看| 一区二区三区欧美久久| 欧美a一区二区| 高清在线成人网| 在线精品视频免费播放| 国产视频一区在线观看| 毛片基地黄久久久久久天堂| 亚洲男人都懂的| 亚洲视频一区二区免费在线观看| 国产精品情趣视频| 亚洲成av人片在线观看| 国产乱码精品一区二区三区av| 国产又黄又大久久| 亚洲午夜久久久久久久久电影网| 日韩精品一卡二卡三卡四卡无卡| 秋霞午夜av一区二区三区| 99久久综合色| 亚洲色图一区二区三区| 国产成人亚洲综合a∨婷婷图片| 免费黄网站欧美| 国产成人a级片| 欧美午夜宅男影院| 亚洲图片欧美综合| 欧美性受xxxx黑人xyx性爽| 国产精品美女久久久久久久久久久 | 日韩一区二区视频| 亚洲永久精品国产| 一区二区三区**美女毛片| 欧美色图12p| 美女视频一区二区三区| 国产精品欧美极品| 亚洲精品一区在线观看| 欧美一级二级三级蜜桃| 5月丁香婷婷综合| 色哟哟一区二区三区| 国产一区二区三区免费观看| 亚洲精品欧美专区| 国产午夜一区二区三区| 国产婷婷色一区二区三区| 久久精品人人做人人综合| 成熟亚洲日本毛茸茸凸凹| 亚洲综合在线第一页| 久久综合九色欧美综合狠狠| 97久久超碰国产精品电影| 风流少妇一区二区| 99精品久久免费看蜜臀剧情介绍 | 丝袜诱惑制服诱惑色一区在线观看| 日韩免费性生活视频播放| 国产福利精品一区| 日韩综合小视频| 久久se精品一区二区| 国产精华液一区二区三区| 色综合久久99| 欧美精品一区二区三区蜜臀| 欧美精品v日韩精品v韩国精品v| 国产**成人网毛片九色| 奇米一区二区三区av| 国产一区二区三区四| 在线区一区二视频| 精品国产91洋老外米糕| 日韩一二在线观看| 欧美激情一区三区| 亚洲欧洲日韩综合一区二区| 青青草97国产精品免费观看 | 国产传媒久久文化传媒| 成人精品在线视频观看| 蜜桃视频第一区免费观看| 国产精品一区免费视频| 欧美日韩精品系列| 国产精品视频线看| 久久99精品国产麻豆婷婷| 成人av资源网站| 日韩欧美视频一区| 亚洲www啪成人一区二区麻豆| 蜜乳av一区二区| 欧美日韩成人综合天天影院| 亚洲欧美日韩国产另类专区 | 亚洲女女做受ⅹxx高潮| 麻豆国产精品一区二区三区| 91美女片黄在线| 日韩一级完整毛片| 日韩在线a电影| 91麻豆swag| 亚洲欧美经典视频| 91久久久免费一区二区| 国产精品污网站| 欧洲精品一区二区三区在线观看| 中文字幕的久久| 91精品久久久久久蜜臀| 亚洲国产美女搞黄色| 欧美影院午夜播放| 日韩中文字幕一区二区三区| 日韩情涩欧美日韩视频| 韩国一区二区视频| 精品国产一区久久| 午夜精品爽啪视频|