一次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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一次HASH JION過慢優化(2)優化
- 對Hash Join的一次優化優化
- 由一次 UPDATE 過慢 SQL 優化而總結出的經驗SQL優化
- 慢Sql優化思路SQL優化
- 一次效能優化調整過程.優化
- 除錯與優化:一次資料中心看板 T+1 改 T+0 優化過程除錯優化
- 為什麼所有的查詢條件都命中索引還是那麼慢?記一次慢查詢優化過程索引優化
- 一次HASH JOIN 臨時表空間不足的分析和優化思路優化
- 一次內鏈子查詢優化 1優化
- MySQL 慢查詢優化MySql優化
- MySQL慢日誌優化MySql優化
- NOT IN 一次優化優化
- 一次優化優化
- Mysql慢SQL分析及優化MySql優化
- 排查Mysql突然變慢的一次過程MySql
- consistent hash 原理,優化及實現優化
- sql server中的hash應用優化SQLServer優化
- 分享工作中一次優化程式的過程優化
- mysql效能優化-慢查詢分析、優化索引和配置MySql優化索引
- 慢SQL優化實戰筆記SQL優化筆記
- Mysql 慢查詢優化實踐MySql優化
- 一次sqlldr匯入慢的解決過程SQL
- 《MySQL慢查詢優化》之SQL語句及索引優化MySql優化索引
- 通過重啟資料庫,完成了一次優化資料庫優化
- EntityFramework優化:第一次啟動優化Framework優化
- 過早引用“過早優化是萬惡之源”是所有緩慢軟體的根源 - JakeWharton優化
- 一次通過DB_LINK抽取資料過慢原因分析
- 記一次UITableView優化UIView優化
- 記一次sql優化SQL優化
- MySQL索引原理及慢查詢優化MySql索引優化
- 鎖優化--1優化
- 記一次開啟資料庫慢原因分析過程資料庫
- HTTP/1.1 有點慢,我想優化下!HTTP優化
- 記一次SQL調優過程SQL
- 一次 Flutter WebView 效能優化FlutterWebView優化
- ? 記一次前端效能優化前端優化
- 記一次分頁優化優化
- 記錄一次打包優化優化