【恩墨學院】走在專家的路上,每天一條SQL最佳化
SQL文字:
SELECT *
FROM(SELECT PAGE.*, ROWNUM PAGEROWNUM
FROM (SELECT *
FROM (SELECT CLASS1,
CLASS2,
SPBM,
GMFMFID GSTMFID,
GBID,
GBCNAME,
GBPPCODE,
GBSPEC,
GBSUPID,
GMFWMID,
GMPHSJJ PJJJ,
GMPSJ SJ,
GMPKL,
F_GETFIRSTSALEDATE(GBID, GBSUPID, GMFMFID) FIRSTSALEDATE,
F_GETLASTSALEDATE(GBID, GBSUPID, GMFMFID) LASTSALEDATE,
(SELECTNVL(SUM(GSTKCSL), 0)
FROM GOODSSTOCK
WHERE GSTGDID= GBID) GSTKCSL,
(SELECTNVL(SUM(GSTKCHSJJJE), 0)
FROMGOODSSTOCK
WHERE GSTGDID= GBID) GSTKCHSJJJE,
(SELECTNVL(SUM(GSTKCHSSJJE), 0)
FROMGOODSSTOCK
WHERE GSTGDID= GBID) GSTKCHSSJJE
FROM GOODSBASE,
GOODSMFRAME,
VIEW_MFRAME_ALL,
GOODSMFPRICE
WHERE GBID = GMFGDID
AND GMFMFID = CLASS3
AND GMPGDID = GBID
AND GMPMFID =GMFMFID
AND GBSTATUS = 'Y'
AND'GOODSBASE.GBSUPID' = 'GOODSBASE.GBSUPID'
ANDGOODSMFRAME.GMFWMID = '1'
AND 'VIEW_MFRAME_ALL.CLASS1' =
'VIEW_MFRAME_ALL.CLASS1'
AND'VIEW_MFRAME_ALL.CLASS2' =
'VIEW_MFRAME_ALL.CLASS2'
AND 'VIEW_MFRAME_ALL.SPBM'= 'VIEW_MFRAME_ALL.SPBM'
AND'GOODSMFRAME.GMFMFID' = 'GO ODSMFRAME.GMFMFID'
AND'GOODSBASE.GBPPCODE' = 'GOODSBASE.GBPPCODE'
AND'GOODSBASE.GBCATCODE' = 'GOODSBASE.GBCATCODE'
AND NOT EXISTS
(SELECT 'X'
FROMSALEGOODSLIST
WHERE SGLGDID= GBID
AND SGLMFID= GMFMFID
AND SGLDATE> = TRUNC(SYSDATE) - '7')
GROUP BY CLASS1,
CLASS2,
SPBM,
GMFMFID,
GBID,
GBCNAME,
GBPPCODE,
GBSPEC,
GBSUPID,
GMFWMID,
GMPHSJJ,
GMPSJ,
GMPKL,
F_GETFIRSTSALEDATE(GBID, GMFMFID, GBSUPID),
F_GETLASTSALEDATE(GBID, GMFMFID, GBSUPID))
WHERE (GMFWMID IN ('1', '2', '3') AND GSTKCSL <> 0)
OR (GMFWMID IN ('4', '5') AND GSTKCSL = 0)) PAGE)
WHERETRUNC((PAGEROWNUM - 1) / 10000) = 0
;
SQL執行的相關統計資訊:
如上圖所示,該SQL在17天的採集時間內,共執行了1次,總執行時間為16,579秒(s),大概為4.6小時(h), 邏輯讀也很大,大概為2,786,393,641。可以進行最佳化。
最佳化前SQL的執行計劃如下所示:
建立瞭如下索引:
CREATE INDEX DBUSRMKT.idx_SALEGOODSLIST_02 ONDBUSRMKT.SALEGOODSLIST(SGLGDID,SGLMFID,SGLSUPID,SGLDATE)ONLINE NOLOGGINGPARALLEL 8;
ALTER INDEX DBUSRMKT.idx_SALEGOODSLIST_02NOPARALLEL;
最佳化後的執行計劃如下:
統計資訊如下:
最佳化後效果如下:
SQL ID |
最佳化前 |
最佳化後 |
提高效果 |
|||
執行時間 |
邏輯讀 |
執行時間 |
邏輯讀 |
執行時間 |
邏輯讀 |
|
6d0u8h07a858u |
16548秒(s) |
2,786,393,641 |
3.06秒(s) |
838881 |
5400多倍 |
3300多倍 |
恩墨學院隸屬於雲和恩墨(北京)資訊科技有限公司,致力於提供專業高水準的與大資料培訓服務,挖掘培養大資料與資料庫人才。恩墨學院提供包括個人實戰技能培訓、個人認證培訓、企業內訓在內的全方位大資料和資料庫技術培訓。ACE級別超強師資,配備專業實驗室,沉浸式學習與訓練,專業實驗室、配備專業助教指導訓練。能迅速融入專家圈子,業內資源豐富,迅速積累職場人脈。課程包括:班、Oracle 、Oracle OCP考試等。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28530558/viewspace-2150390/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【恩墨學院】5分鐘速成Oracle 12.2 RAC 專家Oracle
- 【恩墨學院】恩墨學院獲得Oracle WDP全國授權Oracle
- 【恩墨學院】Oracle Redo的產生場景及最佳化Oracle Redo
- 【恩墨學院】IT基礎架構變革在路上:青海移動的去“IE”之旅架構
- 【恩墨學院】深入剖析 Group Replication核心的引擎特性
- 【恩墨學院】5 分鐘帶你看懂 DockerDocker
- 【恩墨學院】警示:一個專為AIX上12.1版本定製的Bug正在發生AI
- 【恩墨學院】如何理解並正確使用MySql索引MySql索引
- 【恩墨學院】阿里雲資料庫CloudDBA的自動運維與智慧最佳化探索阿里資料庫Cloud運維
- 【恩墨學院】基於裸資料的異地資料庫效能診斷與最佳化資料庫
- 【恩墨學院】一次由查詢轉換引起的效能問題的分析
- 【恩墨學院】深入剖析 - Oracle SCN機制詳細解讀Oracle
- 【恩墨學院】空與非空 EMPTY_LOB和NULL的區別Null
- 【恩墨學院】原來銀行都在用這些資料庫資料庫
- 【恩墨學院】運維經驗:回滾段異常的特殊救急方法運維
- 【恩墨學院】深度學習在美團點評推薦平臺排序中的運用深度學習排序
- 走在架構師之山的路上架構
- 【恩墨學院】深入解析:一主多備DG環境,failover的實現過程詳解AI
- 【恩墨學院】Oracle DG測試failover和後續恢復報告OracleAI
- 【恩墨學院】從商用到開源:DB2遷移至MySQL的最佳實踐DB2MySql
- 【恩墨學院】當Java虛擬機器遇上Linux Arena記憶體池Java虛擬機Linux記憶體
- 【恩墨學院】美團點評資料庫高可用架構的演進與設想資料庫架構
- 【恩墨學院】深入剖析:關於cache buffers chains的經典案例處理詳解?AI
- 【恩墨學院】DBMS_FILE_TRANSFER為ASM的檔案傳輸提供了新的選擇ASM
- 【恩墨學院】架構設計 | 什麼是網際網路架構“高可用”?架構
- 【恩墨學院】資料架構:中國電信的Oracle Sharding架構應用案例分析架構Oracle
- 【恩墨學院】深入解讀Oracle 18c對於DBA的影響及應對措施Oracle
- 【恩墨學院】 盤點 Oracle 11g 中新特性帶來的10大效能影響(下)Oracle
- 【恩墨學院】Bad Rabbit病毒引發的企業資料安全的思考與應對方案
- 直播就在今晚!PostgreSQL專題 【恩墨面對面】SQL
- 墨者學院-SQL手工注入漏洞測試(MySQL資料庫)MySql資料庫
- 【恩墨學院】從資料庫建立深入學習Oracle技術:那些年 mkplug 偷偷執行的Plugin操作資料庫OraclePlugin
- 【慢SQL效能最佳化】 一條SQL的生命週期SQL
- 【恩墨學院】經典故障分析 - ASSM引發的索引爭用與 enq HW -contention 等待事件SSM索引ENQ事件
- 【恩墨學院】為什麼用盡了辦法你的系統效能還是不見改善?
- 田春:走在Lisp的岔路上(圖靈訪談)Lisp圖靈
- 【恩墨學院】 Oracle 資料庫版本釋出計劃變更:下一版本將是 18Oracle資料庫
- 【恩墨學院】資料架構:從AT&T到青海移動的多租戶資料整合實踐架構