SQL_ID  cqsz37256v36j, child number 1
-------------------------------------
INSERT /*+append*/ INTO TMP_ACCT_AF NOLOGGING ( DATA_DATE , ACCT_NO , ACCT_ORD , ACCT_NO_PK , ACCT_BAL , D_CMP_BAL ,
M_CMP_BAL , Y_CMP_BAL , FLAG , ACCT_FLAG , TERM , TERM_FLAG , CUR_CODE , CUR_NAME , SUB_CODE , CUST_NO , CUST_TYPE ,
CUST_NAME , BANK_CORP_CODE , BRAN_NAME , MGR_CODE , MGR_NAME , OPEN_DATE , FIX_BAL , DIV_FIX_FLAG , ADJUST_AMT ,
ADJUST_AMT_AF , Y_AVG_AF , Y_ADD_AF , ACCT_INTR , SIM_PROFIT , SEPA_POR , PRI , BRAN_CODE , UNIT1_CODE , UNIT2_CODE ,
UNIT3_CODE , DEPT1_CODE , INTR_RATE , DUE_DATE ) SELECT /*+use_merge(t1 t2)parallel(t1 16) use_hash(t1 t3)*/ DATA_DATE,
ACCT_NO, ACCT_ORD, ACCT_NO_PK, ACCT_BAL, D_CMP_BAL, M_CMP_BAL, Y_CMP_BAL, FLAG, ACCT_FLAG, TERM, TERM_FLAG, CUR_CODE,
CUR_NAME, SUB_CODE, CUST_NO, CUST_TYPE, CUST_NAME, BANK_CORP_CODE, BRAN_NAME, NVL(T3.MGR_CODE, T1.MGR_CODE), T1.MGR_NAME,
OPEN_DATE, FIX_BAL, DIV_FIX_FLAG, ADJUST_AMT, ADJUST_AMT_AF, Y_AVG_AF, Y_ADD_AF, ACCT_INTR, SIM_PROFIT, SEPA_POR, PRI,
T1.BRAN_CODE, T2.UNIT1_CODE, T2.UNIT2_CODE, T1.BRAN_CODE Plan hash value: 1366440900 ------------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |
------------------------------------------------------------------------------------------------------------------------------------
| 0 | INSERT STATEMENT | | | | 24 (100)| | | | |
| 1 | LOAD AS SELECT | | | | | | | | |
| 2 | PX COORDINATOR | | | | | | | | |
| 3 | PX SEND QC (RANDOM) | :TQ10005 | 1 | 672 | 24 (30)| 00:00:01 | Q1,05 | P->S | QC (RAND) |
| 4 | VIEW | | 1 | 672 | 24 (30)| 00:00:01 | Q1,05 | PCWP | |
| 5 | SORT UNIQUE | | 1 | 650 | 24 (30)| 00:00:01 | Q1,05 | PCWP | |
| 6 | PX RECEIVE | | 1 | 650 | 23 (27)| 00:00:01 | Q1,05 | PCWP | |
| 7 | PX SEND HASH | :TQ10004 | 1 | 650 | 23 (27)| 00:00:01 | Q1,04 | P->P | HASH |
|* 8 | HASH JOIN OUTER | | 1 | 650 | 23 (27)| 00:00:01 | Q1,04 | PCWP | |
| 9 | PX RECEIVE | | 1 | 622 | 18 (28)| 00:00:01 | Q1,04 | PCWP | |
| 10 | PX SEND HASH | :TQ10003 | 1 | 622 | 18 (28)| 00:00:01 | Q1,03 | P->P | HASH |
| 11 | MERGE JOIN OUTER | | 1 | 622 | 18 (28)| 00:00:01 | Q1,03 | PCWP | |
| 12 | SORT JOIN | | 1 | 601 | 3 (34)| 00:00:01 | Q1,03 | PCWP | |
| 13 | PX RECEIVE | | 1 | 601 | 2 (0)| 00:00:01 | Q1,03 | PCWP | |
| 14 | PX SEND HASH | :TQ10002 | 1 | 601 | 2 (0)| 00:00:01 | Q1,02 | P->P | HASH |
| 15 | PX BLOCK ITERATOR | | 1 | 601 | 2 (0)| 00:00:01 | Q1,02 | PCWC | |
|* 16 | TABLE ACCESS FULL| TMP_ACCT_AF2 | 1 | 601 | 2 (0)| 00:00:01 | Q1,02 | PCWP | |
|* 17 | SORT JOIN | | 8158 | 167K| 15 (27)| 00:00:01 | Q1,03 | PCWP | |
| 18 | BUFFER SORT | | | | | | Q1,03 | PCWC | |
| 19 | PX RECEIVE | | 8158 | 167K| 12 (9)| 00:00:01 | Q1,03 | PCWP | |
| 20 | PX SEND HASH | :TQ10000 | 8158 | 167K| 12 (9)| 00:00:01 | | S->P | HASH |
| 21 | TABLE ACCESS FULL| S_PM_MGR_DEPT_RELA | 8158 | 167K| 12 (9)| 00:00:01 | | | |
| 22 | BUFFER SORT | | | | | | Q1,04 | PCWC | |
| 23 | PX RECEIVE | | 3902 | 106K| 5 (20)| 00:00:01 | Q1,04 | PCWP | |
| 24 | PX SEND HASH | :TQ10001 | 3902 | 106K| 5 (20)| 00:00:01 | | S->P | HASH |
|* 25 | INDEX FAST FULL SCAN | MGR_DEPT_RELA_IDX2 | 3902 | 106K| 5 (20)| 00:00:01 | | | |
------------------------------------------------------------------------------------------------------------------------------------ Predicate Information (identified by operation id):
--------------------------------------------------- 8 - access("T1"."MGR_CODE"="T3"."MGR_CODE")
16 - access(:Z>=:Z AND :Z<=:Z)
17 - access("T1"."BRAN_CODE"="T2"."UNIT3_CODE")
filter("T1"."BRAN_CODE"="T2"."UNIT3_CODE")
25 - filter("T3"."DEPT1_CODE"<>'999999999') TMP_ACCT_AF2 T1 (SELECT DISTINCT T2.UNIT3_CODE, T2.UNIT2_CODE, T2.UNIT1_CODE
FROM S_PM_MGR_DEPT_RELA T2) T2 S_PM_MGR_DEPT_RELA T3 T1 和 T2 进行 sort merge join 在 T1和 T3进行 hash join,直接导致temp被耗尽 (SELECT /*+use_merge(t1 t2)parallel(t1 16) use_hash(t1 t3)*/
DATA_DATE,
ACCT_NO,
ACCT_ORD,
ACCT_NO_PK,
ACCT_BAL,
D_CMP_BAL,
M_CMP_BAL,
Y_CMP_BAL,
FLAG,
ACCT_FLAG,
TERM,
TERM_FLAG,
CUR_CODE,
CUR_NAME,
SUB_CODE,
CUST_NO,
CUST_TYPE,
CUST_NAME,
BANK_CORP_CODE,
BRAN_NAME,
NVL(T3.MGR_CODE, T1.MGR_CODE),
T1.MGR_NAME,
OPEN_DATE,
FIX_BAL,
DIV_FIX_FLAG,
ADJUST_AMT,
ADJUST_AMT_AF,
Y_AVG_AF,
Y_ADD_AF,
ACCT_INTR,
SIM_PROFIT,
SEPA_POR,
PRI,
T1.BRAN_CODE,
T2.UNIT1_CODE,
T2.UNIT2_CODE,
T1.BRAN_CODE AS UNIT3_CODE,
NVL(T3.DEPT1_CODE, '999999999'),
T1.INTR_RATE,
T1.DUE_DATE
FROM TMP_ACCT_AF2 T1
LEFT JOIN S_PM_MGR_DEPT_RELA T3
ON T1.MGR_CODE = T3.MGR_CODE
AND T3.DEPT1_CODE <> '999999999'
LEFT JOIN (SELECT DISTINCT T2.UNIT3_CODE, T2.UNIT2_CODE, T2.UNIT1_CODE
FROM S_PM_MGR_DEPT_RELA T2) T2
ON T1.BRAN_CODE = T2.UNIT3_CODE) Plan hash value: 4109009912 -----------------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |
-----------------------------------------------------------------------------------------------------------------------------------------
| 0 | INSERT STATEMENT | | 142M| 28G| | 629 (69)| 00:00:02 | | | |
| 1 | LOAD AS SELECT | TMP_ACCT_AF | | | | | | | | |
| 2 | PX COORDINATOR | | | | | | | | | |
| 3 | PX SEND QC (RANDOM) | :TQ10002 | 142M| 28G| | 629 (69)| 00:00:02 | Q1,02 | P->S | QC (RAND) |
| 4 | MERGE JOIN OUTER | | 142M| 28G| | 629 (69)| 00:00:02 | Q1,02 | PCWP | |
| 5 | SORT JOIN | | 1500K| 208M| 450M| 254 (27)| 00:00:01 | Q1,02 | PCWP | |
|* 6 | HASH JOIN RIGHT OUTER | | 1500K| 208M| | 225 (17)| 00:00:01 | Q1,02 | PCWP | |
| 7 | BUFFER SORT | | | | | | | Q1,02 | PCWC | |
| 8 | PX RECEIVE | | 3902 | 62432 | | 5 (20)| 00:00:01 | Q1,02 | PCWP | |
| 9 | PX SEND BROADCAST | :TQ10000 | 3902 | 62432 | | 5 (20)| 00:00:01 | | S->P | BROADCAST |
|* 10 | INDEX FAST FULL SCAN| MGR_DEPT_RELA_IDX2 | 3902 | 62432 | | 5 (20)| 00:00:01 | | | |
| 11 | PX BLOCK ITERATOR | | 1407K| 174M| | 217 (16)| 00:00:01 | Q1,02 | PCWC | |
| 12 | TABLE ACCESS FULL | TMP_ACCT_AF2 | 1407K| 174M| | 217 (16)| 00:00:01 | Q1,02 | PCWP | |
|* 13 | SORT JOIN | | 7315 | 471K| | 17 (36)| 00:00:01 | Q1,02 | PCWP | |
| 14 | BUFFER SORT | | | | | | | Q1,02 | PCWC | |
| 15 | PX RECEIVE | | 7315 | 471K| | 15 (27)| 00:00:01 | Q1,02 | PCWP | |
| 16 | PX SEND BROADCAST | :TQ10001 | 7315 | 471K| | 15 (27)| 00:00:01 | | S->P | BROADCAST |
| 17 | VIEW | | 7315 | 471K| | 15 (27)| 00:00:01 | | | |
| 18 | SORT UNIQUE | | 7315 | 150K| | 15 (27)| 00:00:01 | | | |
| 19 | TABLE ACCESS FULL | S_PM_MGR_DEPT_RELA | 8158 | 167K| | 12 (9)| 00:00:01 | | | |
----------------------------------------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id):
--------------------------------------------------- 6 - access("T1"."MGR_CODE"="T3"."MGR_CODE"(+))
10 - filter("T3"."DEPT1_CODE"(+)<>'999999999')
13 - access("T1"."BRAN_CODE"="T2"."UNIT3_CODE"(+))
filter("T1"."BRAN_CODE"="T2"."UNIT3_CODE"(+)) 正确关联顺序为T1 和 T3进行HASH JOIN 在通过T1和T2 进行sort merge join

sort merge join导致temp被爆菊的更多相关文章

  1. Sort merge join、Nested loops、Hash join(三种连接类型)

    目前为止,典型的连接类型有3种: Sort merge join(SMJ排序-合并连接):首先生产driving table需要的数据,然后对这些数据按照连接操作关联列进行排序:然后生产probed ...

  2. Nested Loop,Sort Merge Join,Hash Join

    三种连接工作方式比较: Nested loops 工作方式是从一张表中读取数据,访问另一张表(通常是索引)来做匹配,nested loops适用的场合是当一个关联表比较小的时候,效率会更高. Merg ...

  3. Nested loops、Hash join、Sort merge join(三种连接类型原理、使用要点)

    nested loop 嵌套循环(原理):oracle从较小结果集(驱动表.也可以被称为outer)中读取一行,然后和较大结果集(被侦查表,也可以叫做inner)中的所有数据逐条进行比较(也是等值连接 ...

  4. 排序合并连接(sort merge join)的原理

    排序合并连接(sort merge join)的原理 排序合并连接(sort merge join)的原理     排序合并连接(sort merge join)       访问次数:两张表都只会访 ...

  5. Oracle 表的连接方式(1)-----Nested loop join和 Sort merge join

    关系数据库技术的精髓就是通过关系表进行规范化的数据存储,并通过各种表连接技术和各种类型的索引技术来进行信息的检索和处理. 表的三种关联方式: nested loop:从A表抽一条记录,遍历B表查找匹配 ...

  6. Nested Loops,Hash Join 和 Sort Merge Join. 三种不同连接的不同:

    原文:https://blog.csdn.net/tianlesoftware/article/details/5826546 Nested Loops,Hash Join 和 Sort Merge ...

  7. 三大表连接方式详解之Nested loop join和 Sort merge join

    在早期版本,Oracle提供的是nested-loop join,两表连接就相当于二重循环,假定两表分别有m行和n行       如果内循环是全表扫描,时间复杂度就是O(m*n)       如果内循 ...

  8. NESTED LOOPS & HASH JOIN & SORT MERGE JOIN

    表连接方式及使用场合 NESTED LOOP 对于被连接的数据子集较小的情况,nested loop连接是个较好的选择.nested loop就是扫描一个表,每读到一条记录,就根据索引去另一个表里面查 ...

  9. Oracle 三种连接方式 NESTED LOOP HASH JOIN SORT MERGE JOIN

    NESTED LOOP: 对于被连接的数据子集较小的情况,嵌套循环连接是个较好的选择.在嵌套循环中,内表被外表驱动,外表返回的每一行都要在内表中检索找到与它匹配的行,因此整个查询返回的结果集不能太大( ...

随机推荐

  1. VS2010数据库连接问题

    我用SQL server 2008写了一个小表格,运行VS的前选择了 工具-连接数据库,然后选择了那个表格的名称.运行后出现如下错误提示,请问是哪里出了问题呢? 数据库连接版本有问题.在VS中把信用数 ...

  2. ASP.NET反射

    (转载至博客园 dodo-yufan) 两个现实中的例子:1.B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内脏的生理情况.这是如何做到的呢?B超是B型超声波,它可以透过肚皮通过向你体 ...

  3. ActionBar只显示图标不显示文字

    问题:ActionBar菜单项android:showAsAction设置为android:showAsAction="always|withText"或者android:show ...

  4. ios 相册相关

    1.ALAssetsLibrary 系统中的资源库,可以使用他来访问资源库中的资源,照片.视屏等.     [ALAssetsLibrary authorizationStatus];获取当前应用能否 ...

  5. IOS-开发日志-UITextField属性

    UITextField属性 0.     enablesReturnKeyAutomatically 属性 默认为No,如果设置为Yes,文本框中没有输入任何字符的话,右下角的返回按钮是disable ...

  6. ios专题 -block用法

    what is block Blocks are a language-level feature added to C, Objective-C and C++, which allow you t ...

  7. Redis单机版以及集群版的安装搭建以及使用

    1,redis单机版 1.1   安装redis n  版本说明 本教程使用redis3.0版本.3.0版本主要增加了redis集群功能. 安装的前提条件: 需要安装gcc:yum install g ...

  8. 配置php连接apache

    配置php连接apache 1.安装php所需要的库 yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel li ...

  9. scp 命令使用

    scp 是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且 scp传输是加密的.可能会稍微影响一下速度.当你服 ...

  10. [python] virtualenv下解决matplotlib中文乱码

    1. 安装中文字体 一般系统自带wqy-microhei,其ttc文件位于/usr/share/fonts/truetype/wqy/wqy-microhei.ttc 2. 将ttc文件复制到pyth ...