INDEX建立方式對SQL的影響
我常常會聽到一些同事對自己的SQL很有信心,往往說一句:“你看,已經走索引了”。但是我們真的使用了適合我們的索引嗎?
我抓取到一句SQL,消耗了太多的IO。
select SMIN_INFOID,NVL(MI.MONU_PROVINCE,'未知'),COUNT(*) I_RESULTNUM
FROM TBL_WAPXXX WARE,TBL_SMSXXX SMIN,TBL_MOBILEXXX MI,TBL_USERXXX USIN
WHERE WARE_DATE > :B2 AND WARE_DATE <= :B2 + :B1 /24
AND WARE.WARE_UID_FK=USIN.USIN_UID_FK AND SUBSTR(USIN.USIN_PHNUM,1,7)=MI.MONU_PHONENUM(+)
AND WARE_WRUIID_FK=SMIN.SMIN_INFOID GROUP BY SMIN_INFOID ,MI.MONU_PROVINCE
因為TBL_WAPXXX資料量比較大,而造成該SQL執行緩慢並且IO消耗高。看看它的SQL執行計劃和成本估算(如下圖)
注意畫框INDEX(為TBL_WAPXXX的相關索引),雖然走了索引,但是成本和cardnility都很高。檢查這個索引發現其實BLEVEL只有2。而再仔細檢視SQL並詢問實現的功能,其實索引的欄位為DATE型別,該SQL只是檢查最近幾個小時的資訊變化.
在WHERE條件中(WARE_DATE > :B2)因為是範圍查詢,索引使用了(rang scan),加之該表資料量眾多(千萬級別),直接影響了SQL執行效能。
但是透過檢查發現,這個索引就是直接建立的B-TREE索引。而我注意到其實該SQL檢查的就是最近一個或幾個小時的資料,終於可以找到一些問題所在了。INDEX建立時預設情況下,索引的欄位採用升序(asc)建立,而這種方法顯然是不適合當前這個SQL的,我們可以透過建立基於降序的索引來適應實際的需求。
SQL> create index IDX_WARE_DATE1 on TBL_WAPXXXX(WARE_DATE desc)
2 tablespace USERTBS;
再來檢查執行的SQL計劃和預算成本:
執行成本大幅降低。INDEX的建立時索引欄位排序的方式其實對特定SQL影響還是很大的。尤其是一些歷史流水錶,在某些情況下只是查詢近期的資料時,就顯得尤為重要了。
注:文中的SQL因為某些問題,我做了適當的處理,在顯示的執行計劃圖中也是處理過的,所以會出現表名不十分匹配的問題,請大家見諒。
PS:
最近總是很忙,忙的只有在睡覺前才有時間寫點東西。但是實在太累,總是無法好好的寫。真的要好好堅持堅持呀 -:),否則年初的目標就很難完成了。
©著作權歸作者所有:來自51CTO部落格作者Larry.Yue的原創作品,如需轉載,請註明出處,否則將追究法律責任
ORACLESQL資料庫ORACLE足跡
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2768/viewspace-2821418/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- unusable index對DML/QUERY的影響Index
- 影像Resize方式對深度學習模型效果的影響深度學習模型
- [20220105]建立非唯一主鍵對效能有影響嗎.txt
- Nologging對恢復的影響(二)
- 語言對思維的影響
- Nologging對恢復的影響(一)
- Strategy Analytics:品牌應對疫情的方式會影響消費者對品牌的好感度嗎?
- 網線的分類與對網速的影響 網線對網速影響大嗎?
- 浮動的盒子對img的影響
- SQL Server中事務日誌自動增長對效能的影響(下)PGSQLServer
- SQL Server中事務日誌自動增長對效能的影響(上)OSSQLServer
- 來電對播放音樂的影響
- python:super()對多繼承的影響Python繼承
- DB2 HADR對效能的影響DB2
- 關於OPcache對Swoole影響的理解opcache
- 終端環境對go程式的影響?Go
- margin為負值對佈局的影響
- Sailthru:Facebook醜聞對人們的影響AI
- 網路延遲對事務的影響
- JVM 引數調整對 sortx 的影響JVM
- Mavrck:COVID-19對創作者的影響VR
- cluster factor對執行計劃的影響
- 淺談疫情對消費金融的影響
- 虛擬記憶體對 OI 的影響記憶體
- 修改系統時間對oracle的影響Oracle
- VideaHealth:人工智慧對牙科的真正影響Idea人工智慧
- windows server許可權對tomcat的影響WindowsServerTomcat
- namespace對axis解析xml請求的影響namespaceXML
- MySQL alter 新增列對dml影響MySql
- 海外伺服器對SEO影響?伺服器
- Cirium:資料揭示新冠肺炎對中國航空業的影響及對全球航空旅遊增長的影響
- 最影響SQL執行速度的坑,你中招了嗎?SQL
- 人工智慧影響未來娛樂的31種方式人工智慧
- Git 分支策略與submodule對分支策略的影響Git
- 人工智慧對軟體測試的影響人工智慧
- 修改主機時區對Oracle的影響分析Oracle
- 遊戲暗示對於遊戲玩家的影響遊戲
- PCMA:冠狀病毒對事件營銷的影響事件