欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

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

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

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

索引無效原因

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

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

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

1. 分析索引

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

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)控結束時間

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

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

不走索引的原因

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

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

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

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

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

2. 索引的列進行隱式的類型轉換

SELECT * FROM TABLE WHERE INDEX_COLUM = 5

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

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) 將為空的字段轉為不為空的c值,再在函數(shù)nvl(b,c)上建立函數(shù)索引

轉換前

SELECT * FROM A WHERE B = NULL

轉換后

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

5. 組合索引

組合索引:由多個列構成的索引。如

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

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

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

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

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

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

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') ,看著就很難受

其次,強制使用索引的方法需要在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 轉化成CHAR類型就行了,雖然看起來要改動的地方很多,其實解決了更大的問題。

總結

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

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

標簽:合肥 許昌 涼山 南充 郴州 滁州 遼源 焦作

巨人網(wǎng)絡通訊聲明:本文標題《Oracle Index索引無效的原因與解決方法》,本文關鍵詞  Oracle,Index,索引,無效,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Oracle Index索引無效的原因與解決方法》相關的同類信息!
  • 本頁收集關于Oracle Index索引無效的原因與解決方法的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    99精品欧美一区二区三区小说| 7777精品伊人久久久大香线蕉完整版 | 亚洲二区在线视频| 91一区一区三区| 一本大道久久a久久精品综合 | 97超碰在线免费观看| 欧美一级精品在线| 亚洲成人黄色小说| 国产免费无码一区二区| 欧美在线影院一区二区| 亚洲女同女同女同女同女同69| gogo大胆日本视频一区| 色婷婷综合中文久久一本| 亚洲青青青在线视频| 99国产精品久久久久久久久久| 色综合咪咪久久| 一区二区三区加勒比av| 久久发布国产伦子伦精品| 欧美偷拍一区二区| 亚洲成av人片在www色猫咪| 国产综合内射日韩久| 91精品国产一区二区三区蜜臀| 日韩精品国产精品| 永久免费看mv网站入口78| 久久综合九色综合欧美98| 韩国一区二区在线观看| 日本在线观看网址| 国产精品久久久久影院| 91在线观看污| 3d成人h动漫网站入口| 免费日韩伦理电影| 成年人在线免费看片| 欧美国产亚洲另类动漫| av电影在线不卡| 欧美日韩视频在线观看一区二区三区| 亚洲国产成人porn| 日本高清www| 国产精品每日更新| 99久久综合网| 欧美www视频| 国产**成人网毛片九色 | 私库av在线播放| 亚洲影视资源网| 给我看免费高清在线观看| 久久久亚洲国产美女国产盗摄 | 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲国产高清aⅴ视频| 91在线免费视频观看| 制服丝袜日韩国产| 国产一区二区久久| 色婷婷av一区二区| 日本一不卡视频| 男人晚上看的视频| 亚洲一级二级在线| 性猛交ⅹxxx富婆video| 亚洲欧美日本在线| 久久国产精品无码一级毛片| 国产精品网站导航| 老熟女高潮一区二区三区| 2020国产精品久久精品美国| 99精品国产热久久91蜜凸| 日韩欧美国产成人一区二区| 豆国产96在线|亚洲| 这里只有精品视频在线观看| 国产精品一区二区视频| 欧美高清性hdvideosex| 国产91丝袜在线播放九色| 91精品国产欧美日韩| 国产成人激情av| 日韩一区二区三区视频| 国产91在线观看丝袜| 欧美一级二级三级蜜桃| 成人h动漫精品一区二区| 日韩亚洲欧美综合| 91免费版在线| 国产亚洲视频系列| 国产一卡二卡三卡四卡| 国产精品三级电影| 少妇毛片一区二区三区| 亚洲女与黑人做爰| 男女男精品视频网站| 亚洲一区二区三区四区的| 999福利视频| 日本伊人精品一区二区三区观看方式| 色香蕉成人二区免费| 国产在线国偷精品产拍免费yy| 欧美高清精品3d| 不卡在线视频中文字幕| 久久精品一区二区| 女同性恋一区二区三区| 亚洲猫色日本管| 欧美日韩色视频| 极品少妇一区二区三区精品视频| 欧美视频一区二| 成人动漫视频在线| 国产日韩三级在线| 中文字幕在线看高清电影| 亚洲国产wwwccc36天堂| 91豆麻精品91久久久久久| 高清在线成人网| 久久中文字幕电影| 捆绑裸体绳奴bdsm亚洲| 一区二区三区精品| 色88888久久久久久影院按摩| 国产不卡在线播放| 久久免费偷拍视频| 蜜桃传媒一区二区亚洲av| 午夜不卡在线视频| 欧美日韩在线播| 91蝌蚪porny| 亚洲免费看黄网站| 91精品国产高清一区二区三蜜臀| 国产精品一区二区x88av| 久久综合色综合88| 97超碰在线资源| 欧美aⅴ一区二区三区视频| 欧美精品一二三| 免费黄色a级片| 一级特黄大欧美久久久| 色偷偷久久一区二区三区| 不卡一区二区三区四区| 国产精品福利一区| av成人免费网站| 成人av小说网| 亚洲免费资源在线播放| 在线观看中文字幕不卡| 91在线视频观看| 亚洲一线二线三线视频| 欧美日韩激情一区| 人妻 丝袜美腿 中文字幕| 亚洲国产一区二区视频| 欧美丰满美乳xxx高潮www| 日本在线不卡一区二区| 午夜精品久久久久久久99樱桃 | 欧美亚洲国产一区在线观看网站 | 亚洲国产岛国毛片在线| 亚洲不卡在线播放| 成人一区在线看| 亚洲视频精选在线| 欧美影视一区二区三区| 中文字幕无码毛片免费看| 亚洲丶国产丶欧美一区二区三区| 制服丝袜成人动漫| 国产精品成人一区二区三区电影毛片| 精品在线播放免费| 国产日产精品一区| 久久久久久久久久久久久女过产乱| 99久久免费国产| 亚洲一区二区三区自拍| 日韩美一区二区三区| 国产又粗又猛又爽又黄的视频四季 | 欧美一区日韩一区| 亚洲第一成人网站| 日韩午夜中文字幕| 久久精品视频一区| 国产亚洲短视频| 天天操天天操天天操天天操天天操| av中文字幕一区| 亚洲综合色婷婷| 日韩亚洲欧美中文三级| 国产精品无码无卡无需播放器| 成人午夜免费av| 亚洲精品国产成人久久av盗摄| 欧美日韩高清一区二区不卡| 醉酒壮男gay强迫野外xx| 国产激情一区二区三区四区| 亚洲日本va在线观看| 666欧美在线视频| 国产精品情侣呻吟对白视频| 成人国产一区二区三区精品| 亚洲国产欧美在线| 欧美精品一区二区三区蜜臀| 色拍拍在线精品视频8848| 在线免费观看污视频| 国产精品亚洲人在线观看| 一区二区三区精品视频在线| 2020国产精品自拍| 在线视频中文字幕一区二区| 91视频免费观看网站| 成人福利视频网站| 日本系列欧美系列| 最新高清无码专区| 日韩免费高清电影| 色综合色综合色综合| 少妇精品一区二区三区| 成人avav在线| 免费久久99精品国产| 成人欧美一区二区三区黑人麻豆| 91精品国产高清一区二区三区| 亚洲欧美另类日本| youjizz.com日本| 国产v日产∨综合v精品视频| 亚洲6080在线| 亚洲人吸女人奶水| 久久综合色之久久综合| 欧美日韩亚州综合| 欧美激情图片小说| 制服 丝袜 综合 日韩 欧美| 伊人影院在线观看视频| 国产福利一区在线观看|