一次HASH JION過慢優化(1)
原創 轉載請註明出處
最近我發現生產有一個語句執行比較慢。需要4-5分鐘。所以對其進行了優化,優化結果執行只需要不到3秒。
語句如下:
我發現出問題的部分是
select *
from (select a.test,
a.test1,
a.test2,
a.test3,
a.test4,
case
when b.test5 = '1' then
b.test6
else
a.test6
end test6,
0 bankComm,
c.test7 || '-' || case
when c.test8= '1' then
'收'
when c.test8= '2' then
'付'
end payway,
case
when a.poatype = '1' then
a.poainfo
else
''
end,
a.test9,
b.test10,
b.test11,
a.test12,
a.test13,
a.test14,
case
when a.test15 = b.test15 then
a.test19
else
a.totest19
end,
b.totest19,
a.totest19,
a.totest19
from prod.totest19 a,
prod.totest19 b,
prod.totest19 c
where (a.totest15 = b.test15 or
a.test15 = b.test15)
and b.totest19 not in ('50', '51', '60', '61')
and c.totest19 = '1'
and c.totest19 = '1'
and b.totest19 = c.paywaycode
and b.totest19<> '212'
AND to_char(a.test, 'yyyy-mm-dd') >=
'2011-01-11'
AND to_char(a.test, 'yyyy-mm-dd') <=
'2011-01-12'
執行計劃如下:
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 3443708996
--------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 808 | 183K| | 775
|* 1 | HASH JOIN | | 808 | 183K| 2648K| 775
| 2 | MERGE JOIN CARTESIAN| | 13655 | 2480K| | 677
|* 3 | TABLE ACCESS FULL | test3| 846 | 128K| | 584
| 4 | BUFFER SORT | | 16 | 480 | | 93
|* 5 | TABLE ACCESS FULL | test2 | 16 | 480 | |
|* 6 | TABLE ACCESS FULL | test | 46215 | 2121K| | 51
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-686878/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 由一次 UPDATE 過慢 SQL 優化而總結出的經驗SQL優化
- 慢Sql優化思路SQL優化
- 為什麼所有的查詢條件都命中索引還是那麼慢?記一次慢查詢優化過程索引優化
- 除錯與優化:一次資料中心看板 T+1 改 T+0 優化過程除錯優化
- 記一次 500併發,平均響應時間慢-調優過程~~
- MySQL 慢查詢優化MySql優化
- MySQL慢日誌優化MySql優化
- consistent hash 原理,優化及實現優化
- Mysql慢SQL分析及優化MySql優化
- 排查Mysql突然變慢的一次過程MySql
- 分享工作中一次優化程式的過程優化
- 慢SQL優化實戰筆記SQL優化筆記
- Mysql 慢查詢優化實踐MySql優化
- 一次sqlldr匯入慢的解決過程SQL
- 《MySQL慢查詢優化》之SQL語句及索引優化MySql優化索引
- 過早引用“過早優化是萬惡之源”是所有緩慢軟體的根源 - JakeWharton優化
- EntityFramework優化:第一次啟動優化Framework優化
- 記一次開啟資料庫慢原因分析過程資料庫
- Hawkeye:TopN慢query的獲取與優化優化
- HTTP/1.1 有點慢,我想優化下!HTTP優化
- 使用模擬退火演算法優化 Hash 函式演算法優化函式
- 記一次SQL調優過程SQL
- win10優化後開機慢怎麼解決_win10優化後開機慢如何處理Win10優化
- 鎖優化--1優化
- Android效能優化(1)—webview優化篇Android優化WebView
- 為什麼所有的查詢條件都命中索引還是那麼慢?記一次慢查詢最佳化過程索引
- 記錄一次打包優化優化
- 一次 Flutter WebView 效能優化FlutterWebView優化
- ? 記一次前端效能優化前端優化
- 記一次分頁優化優化
- [20181130]hash衝突導致查詢緩慢.txt
- msyql jion 和 union 的區別
- Sql語句本身的優化-定位慢查詢SQL優化
- 前端網頁載入速度緩慢優化策略前端網頁優化
- 效能優化小冊 - 分類構建:利用好 webpack hash優化Web
- 一次完整的 Web 請求和渲染過程以及如何優化網頁Web優化網頁
- MySQL優化(1)——–常用的優化步驟MySql優化
- 記一次Elasticsearch優化總結Elasticsearch優化
- 記一次 Webpack 專案優化Web優化