Home » RDBMS Server » Performance Tuning » Merge statement tuning for 100M records in table
Merge statement tuning for 100M records in table [message #529349] |
Mon, 31 October 2011 04:42 |
|
sachi09
Messages: 22 Registered: October 2011 Location: India
|
Junior Member |
|
|
Hi,
I have two tables with 113M records in DWH_BILL_DET & 103M in prd_rerate_chg_que and Im running following merge query, which is running for 13 hrs to update records, which is quiet longer time. How to improve performance of this query, any suggesstions
SQL> explain plan for MERGE /*+ parallel (rq, 16) */
INTO DWH_BILL_DET rq
USING (SELECT rated_que_rowid,
detail_rerate_flag_code,
rerate_sel_key,
rerate_adj_inv_code
FROM prd_rerate_chg_que PARTITION(SYS_P62532)
WHERE rerate_adj_inv_code >= 0
AND rerate_sel_key NOT IN
(SELECT rerate_sel_key
FROM prd_rerate_sel
WHERE status = 'Cancelled'
AND rerate_batch_key = 24)) rr
ON (rq.rowid = rr.rated_que_rowid and trunc(rq.call_start_dttm) between '01-JAN-11' and '31-JAN-11')
WHEN MATCHED THEN
UPDATE
SET rerate_flag_code = rr.detail_rerate_flag_code,
rerate_sel_key = rr.rerate_sel_key,
rerate_adj_inv_code = rr.rerate_adj_inv_code
WHEN NOT MATCHED THEN
INSERT (file_key) VALUES (NULL);
|
|
|
|
Re: Merge statement tuning for 100M records in table [message #529361 is a reply to message #529353] |
Mon, 31 October 2011 05:32 |
|
LNossov
Messages: 318 Registered: July 2011 Location: Germany
|
Senior Member |
|
|
Do the following:
explain plan set statement_id='TTT' for
MERGE /*+ hash(rq) parallel(rq 8) */
INTO DWH_BILL_DET rq
USING (SELECT /*+ use_hash(prd_rerate_chg_que) parallel(prd_rerate_chg_que 8) */ rated_que_rowid,
detail_rerate_flag_code,
rerate_sel_key,
rerate_adj_inv_code
FROM prd_rerate_chg_que PARTITION(SYS_P62532)
WHERE rerate_adj_inv_code >= 0
AND rerate_sel_key NOT IN
(SELECT /*+ unnest use_hash(prd_rerate_sel) parallel(prd_rerate_sel 8) */ rerate_sel_key
FROM prd_rerate_sel
WHERE status = 'Cancelled'
AND rerate_batch_key = 24)) rr
ON (rq.rowid = rr.rated_que_rowid and trunc(rq.call_start_dttm) between '01-JAN-11' and '31-JAN-11')
WHEN MATCHED THEN
UPDATE
SET rerate_flag_code = rr.detail_rerate_flag_code,
rerate_sel_key = rr.rerate_sel_key,
rerate_adj_inv_code = rr.rerate_adj_inv_code
WHEN NOT MATCHED THEN
INSERT (file_key) VALUES (NULL);
set linesize 1000
set trimspool on
select * from table(sys.dbms_xplan.display('','TTT','ALL'));
rollback;
[Updated on: Mon, 31 October 2011 05:33] Report message to a moderator
|
|
|
|
|
|
|
|
Re: Merge statement tuning for 100M records in table [message #529377 is a reply to message #529370] |
Mon, 31 October 2011 07:14 |
|
sachi09
Messages: 22 Registered: October 2011 Location: India
|
Junior Member |
|
|
Yes stats are updated,
SQL> select * from table(sys.dbms_xplan.display('','TTT','ALL'));
PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 2333175250
----------------------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop | TQ |IN-OUT| PQ Distrib |
----------------------------------------------------------------------------------------------------------------------------------------------
| 0 | MERGE STATEMENT | | 1 | 481 | 19251 (11)| 00:03:52 | | | | | |
| 1 | MERGE | DWH_BILL_DET | | | | | | | | | |
| 2 | PX COORDINATOR | | | | | | | | | | |
| 3 | PX SEND QC (RANDOM) | :TQ10003 | 1 | 487 | 19251 (11)| 00:03:52 | | | Q1,03 | P->S | QC (RAND) |
| 4 | VIEW | | | | | | | | Q1,03 | PCWP | |
|* 5 | HASH JOIN ANTI SNA | | 1 | 487 | 19251 (11)| 00:03:52 | | | Q1,03 | PCWP | |
|* 6 | HASH JOIN OUTER | | 1 | 471 | 19245 (11)| 00:03:51 | | | Q1,03 | PCWP | |
| 7 | PX RECEIVE | | 1 | 29 | 3526 (1)| 00:00:43 | | | Q1,03 | PCWP | |
| 8 | PX SEND HASH | :TQ10001 | 1 | 29 | 3526 (1)| 00:00:43 | | | Q1,01 | P->P | HASH |
| 9 | PX BLOCK ITERATOR | | 1 | 29 | 3526 (1)| 00:00:43 | 1 | 1 | Q1,01 | PCWC | |
|* 10 | TABLE ACCESS FULL| PRD_RERATE_CHG_QUE | 1 | 29 | 3526 (1)| 00:00:43 | 1 | 1 | Q1,01 | PCWP | |
| 11 | PX RECEIVE | | 54M| 22G| 15687 (13)| 00:03:09 | | | Q1,03 | PCWP | |
| 12 | PX SEND HASH | :TQ10002 | 54M| 22G| 15687 (13)| 00:03:09 | | | Q1,02 | P->P | HASH |
| 13 | PX BLOCK ITERATOR | | 54M| 22G| 15687 (13)| 00:03:09 | 1 | 8 | Q1,02 | PCWC | |
|* 14 | TABLE ACCESS FULL| DWH_BILL_DET | 54M| 22G| 15687 (13)| 00:03:09 | 1 | 2928 | Q1,02 | PCWP | |
| 15 | BUFFER SORT | | | | | | | | Q1,03 | PCWC | |
| 16 | PX RECEIVE | | 1 | 16 | 5 (0)| 00:00:01 | | | Q1,03 | PCWP | |
| 17 | PX SEND BROADCAST | :TQ10000 | 1 | 16 | 5 (0)| 00:00:01 | | | | S->P | BROADCAST |
|* 18 | TABLE ACCESS FULL | PRD_RERATE_SEL | 1 | 16 | 5 (0)| 00:00:01 | | | | | |
----------------------------------------------------------------------------------------------------------------------------------------------
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
1 - MRG$1
5 - SEL$658B16C2
10 - SEL$658B16C2 / PRD_RERATE_CHG_QUE@SEL$3
14 - SEL$658B16C2 / RQ@SEL$2
18 - SEL$658B16C2 / PRD_RERATE_SEL@SEL$4
Predicate Information (identified by operation id):
---------------------------------------------------
5 - access("RERATE_SEL_KEY"="RERATE_SEL_KEY")
6 - access("RQ".ROWID(+)="RATED_QUE_ROWID")
10 - filter("RERATE_ADJ_INV_CODE">=0)
14 - filter(TRUNC(INTERNAL_FUNCTION("RQ"."CALL_START_DTTM"(+)))<='31-JAN-11' AND
TRUNC(INTERNAL_FUNCTION("RQ"."CALL_START_DTTM"(+)))>='01-JAN-11')
18 - filter("RERATE_BATCH_KEY"=24 AND "STATUS"='Cancelled')
|
|
|
|
|
|
Re: Merge statement tuning for 100M records in table [message #529396 is a reply to message #529395] |
Mon, 31 October 2011 10:27 |
|
sachi09
Messages: 22 Registered: October 2011 Location: India
|
Junior Member |
|
|
PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 2333175250
----------------------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop | TQ |IN-OUT| PQ Distrib |
----------------------------------------------------------------------------------------------------------------------------------------------
| 0 | MERGE STATEMENT | | 1 | 481 | 19251 (11)| 00:03:52 | | | | | |
| 1 | MERGE | DWH_BILL_DET | | | | | | | | | |
| 2 | PX COORDINATOR | | | | | | | | | | |
| 3 | PX SEND QC (RANDOM) | :TQ10003 | 1 | 487 | 19251 (11)| 00:03:52 | | | Q1,03 | P->S | QC (RAND) |
| 4 | VIEW | | | | | | | | Q1,03 | PCWP | |
|* 5 | HASH JOIN ANTI SNA | | 1 | 487 | 19251 (11)| 00:03:52 | | | Q1,03 | PCWP | |
|* 6 | HASH JOIN OUTER | | 1 | 471 | 19245 (11)| 00:03:51 | | | Q1,03 | PCWP | |
| 7 | PX RECEIVE | | 1 | 29 | 3526 (1)| 00:00:43 | | | Q1,03 | PCWP | |
| 8 | PX SEND HASH | :TQ10001 | 1 | 29 | 3526 (1)| 00:00:43 | | | Q1,01 | P->P | HASH |
| 9 | PX BLOCK ITERATOR | | 1 | 29 | 3526 (1)| 00:00:43 | 1 | 1 | Q1,01 | PCWC | |
|* 10 | TABLE ACCESS FULL| PRD_RERATE_CHG_QUE | 1 | 29 | 3526 (1)| 00:00:43 | 1 | 1 | Q1,01 | PCWP | |
| 11 | PX RECEIVE | | 54M| 22G| 15687 (13)| 00:03:09 | | | Q1,03 | PCWP | |
| 12 | PX SEND HASH | :TQ10002 | 54M| 22G| 15687 (13)| 00:03:09 | | | Q1,02 | P->P | HASH |
| 13 | PX BLOCK ITERATOR | | 54M| 22G| 15687 (13)| 00:03:09 | 1 | 8 | Q1,02 | PCWC | |
|* 14 | TABLE ACCESS FULL| DWH_BILL_DET | 54M| 22G| 15687 (13)| 00:03:09 | 1 | 2928 | Q1,02 | PCWP | |
| 15 | BUFFER SORT | | | | | | | | Q1,03 | PCWC | |
| 16 | PX RECEIVE | | 1 | 16 | 5 (0)| 00:00:01 | | | Q1,03 | PCWP | |
| 17 | PX SEND BROADCAST | :TQ10000 | 1 | 16 | 5 (0)| 00:00:01 | | | | S->P | BROADCAST |
|* 18 | TABLE ACCESS FULL | PRD_RERATE_SEL | 1 | 16 | 5 (0)| 00:00:01 | | | | | |
----------------------------------------------------------------------------------------------------------------------------------------------
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
1 - MRG$1
5 - SEL$658B16C2
10 - SEL$658B16C2 / PRD_RERATE_CHG_QUE@SEL$3
14 - SEL$658B16C2 / RQ@SEL$2
18 - SEL$658B16C2 / PRD_RERATE_SEL@SEL$4
Predicate Information (identified by operation id):
---------------------------------------------------
5 - access("RERATE_SEL_KEY"="RERATE_SEL_KEY")
6 - access("RQ".ROWID(+)="RATED_QUE_ROWID")
10 - filter("RERATE_ADJ_INV_CODE">=0)
14 - filter(TRUNC(INTERNAL_FUNCTION("RQ"."CALL_START_DTTM"(+)))<='31-JAN-11' AND
TRUNC(INTERNAL_FUNCTION("RQ"."CALL_START_DTTM"(+)))>='01-JAN-11')
18 - filter("RERATE_BATCH_KEY"=24 AND "STATUS"='Cancelled')
|
|
|
|
|
|
|
|
Re: Merge statement tuning for 100M records in table [message #529405 is a reply to message #529404] |
Mon, 31 October 2011 12:19 |
|
LNossov
Messages: 318 Registered: July 2011 Location: Germany
|
Senior Member |
|
|
We can try with partition pruning, if you rewrite your where clause:
explain plan set statement_id='TTT' for
MERGE /*+ use_hash(rq) parallel(rq 8) full (rq) */
INTO DWH_BILL_DET rq
USING (SELECT /*+ use_hash(prd_rerate_chg_que) parallel(prd_rerate_chg_que 8) */ rated_que_rowid,
detail_rerate_flag_code,
rerate_sel_key,
rerate_adj_inv_code
FROM prd_rerate_chg_que PARTITION(SYS_P62532)
WHERE rerate_adj_inv_code >= 0
AND rerate_sel_key NOT IN
(SELECT /*+ unnest use_hash(prd_rerate_sel) parallel(prd_rerate_sel 8) */ rerate_sel_key
FROM prd_rerate_sel
WHERE status = 'Cancelled'
AND rerate_batch_key = 24)) rr
ON (rq.rowid = rr.rated_que_rowid and rq.call_start_dttm between to_date('01-JAN-11','dd-mm-yy') and to_date('31-JAN-11 23:59:59','dd-mm-yy hh24:mi:ss'))
WHEN MATCHED THEN
UPDATE
SET rerate_flag_code = rr.detail_rerate_flag_code,
rerate_sel_key = rr.rerate_sel_key,
rerate_adj_inv_code = rr.rerate_adj_inv_code
WHEN NOT MATCHED THEN
INSERT (file_key) VALUES (NULL);
set linesize 1000
set pagesize 1000
set trimspool on
select * from table(sys.dbms_xplan.display('','TTT','ALL'));
rollback;
I'm not sure, that an index scan is better. How many rows do you expect to be inserted and how many to be updated? What is about the selectivity of the subquery?
[Updated on: Mon, 31 October 2011 12:21] Report message to a moderator
|
|
|
Re: Merge statement tuning for 100M records in table [message #529406 is a reply to message #529405] |
Mon, 31 October 2011 12:55 |
|
sachi09
Messages: 22 Registered: October 2011 Location: India
|
Junior Member |
|
|
Most of the time this query updates records, i.e. less no of inserts, and update all rows from prd_rerate_chg_que - 103M. regarding subquery selectivity, distinct statuses 2/50.
PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 2333175250
----------------------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop | TQ |IN-OUT| PQ Distrib |
----------------------------------------------------------------------------------------------------------------------------------------------
| 0 | MERGE STATEMENT | | 1 | 481 | 43618 (10)| 00:08:44 | | | | | |
| 1 | MERGE | DWH_BILL_DET | | | | | | | | | |
| 2 | PX COORDINATOR | | | | | | | | | | |
| 3 | PX SEND QC (RANDOM) | :TQ10003 | 1 | 487 | 43618 (10)| 00:08:44 | | | Q1,03 | P->S | QC (RAND) |
| 4 | VIEW | | | | | | | | Q1,03 | PCWP | |
|* 5 | HASH JOIN ANTI SNA | | 1 | 487 | 43618 (10)| 00:08:44 | | | Q1,03 | PCWP | |
|* 6 | HASH JOIN OUTER | | 1 | 471 | 43612 (10)| 00:08:44 | | | Q1,03 | PCWP | |
| 7 | PX RECEIVE | | 1 | 29 | 3526 (1)| 00:00:43 | | | Q1,03 | PCWP | |
| 8 | PX SEND HASH | :TQ10001 | 1 | 29 | 3526 (1)| 00:00:43 | | | Q1,01 | P->P | HASH |
| 9 | PX BLOCK ITERATOR | | 1 | 29 | 3526 (1)| 00:00:43 | 1 | 1 | Q1,01 | PCWC | |
|* 10 | TABLE ACCESS FULL| PRD_RERATE_CHG_QUE | 1 | 29 | 3526 (1)| 00:00:43 | 1 | 1 | Q1,01 | PCWP | |
| 11 | PX RECEIVE | | 102M| 42G| 40027 (11)| 00:08:01 | | | Q1,03 | PCWP | |
| 12 | PX SEND HASH | :TQ10002 | 102M| 42G| 40027 (11)| 00:08:01 | | | Q1,02 | P->P | HASH |
| 13 | PX BLOCK ITERATOR | | 102M| 42G| 40027 (11)| 00:08:01 | 1 | 8 | Q1,02 | PCWC | |
|* 14 | TABLE ACCESS FULL| DWH_BILL_DET | 102M| 42G| 40027 (11)| 00:08:01 | KEY | KEY | Q1,02 | PCWP | |
| 15 | BUFFER SORT | | | | | | | | Q1,03 | PCWC | |
| 16 | PX RECEIVE | | 1 | 16 | 5 (0)| 00:00:01 | | | Q1,03 | PCWP | |
| 17 | PX SEND BROADCAST | :TQ10000 | 1 | 16 | 5 (0)| 00:00:01 | | | | S->P | BROADCAST |
|* 18 | TABLE ACCESS FULL | PRD_RERATE_SEL | 1 | 16 | 5 (0)| 00:00:01 | | | | | |
----------------------------------------------------------------------------------------------------------------------------------------------
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
1 - MRG$1
5 - SEL$658B16C2
10 - SEL$658B16C2 / PRD_RERATE_CHG_QUE@SEL$3
14 - SEL$658B16C2 / RQ@SEL$2
18 - SEL$658B16C2 / PRD_RERATE_SEL@SEL$4
Predicate Information (identified by operation id):
---------------------------------------------------
5 - access("RERATE_SEL_KEY"="RERATE_SEL_KEY")
6 - access("RQ".ROWID(+)="RATED_QUE_ROWID")
10 - filter("RERATE_ADJ_INV_CODE">=0)
14 - filter("RQ"."CALL_START_DTTM"(+)<=TO_DATE('31-JAN-11 23:59:59','dd-mm-yy hh24:mi:ss') AND
"RQ"."CALL_START_DTTM"(+)>=TO_DATE('01-JAN-11','dd-mm-yy'))
18 - filter("RERATE_BATCH_KEY"=24 AND "STATUS"='Cancelled')
|
|
|
|
|
Re: Merge statement tuning for 100M records in table [message #529411 is a reply to message #529410] |
Mon, 31 October 2011 13:28 |
|
LNossov
Messages: 318 Registered: July 2011 Location: Germany
|
Senior Member |
|
|
370 partitions for approximately one year? So we cannot win a lot by partition pruning.
I suggest, we let the sql run further. Could you send the execution plan of it:
select sql_id, child_number, sql_text from v$sql where force_matching_signature=8256480873996085452 and upper(sql_text) not like 'EXPLAIN%';
Then run the following sql with the found sql_id and child_number:
set pagesize 1000
set linesize 1000
select plan_table_output from table ( sys.dbms_xplan.display_cursor( '<sql_id>', <child_number>, 'ADVANCED' ));
[Updated on: Mon, 31 October 2011 13:30] Report message to a moderator
|
|
|
Re: Merge statement tuning for 100M records in table [message #529412 is a reply to message #529411] |
Mon, 31 October 2011 13:46 |
|
LNossov
Messages: 318 Registered: July 2011 Location: Germany
|
Senior Member |
|
|
Sorry, I thought, we select one year. So we can win by partition pruning.
Try, please:
explain plan set statement_id='TTT' for
MERGE /*+ use_hash(rq) parallel(rq 8) full (rq) */
INTO DWH_BILL_DET rq
USING (SELECT /*+ use_hash(prd_rerate_chg_que) parallel(prd_rerate_chg_que 8) push_subq */ rated_que_rowid,
detail_rerate_flag_code,
rerate_sel_key,
rerate_adj_inv_code
FROM prd_rerate_chg_que PARTITION(SYS_P62532)
WHERE rerate_adj_inv_code >= 0
AND rerate_sel_key NOT IN
(SELECT rerate_sel_key
FROM prd_rerate_sel
WHERE status = 'Cancelled'
AND rerate_batch_key = 24)) rr
ON (rq.rowid = rr.rated_que_rowid and rq.call_start_dttm between to_date('01-JAN-11','dd-mm-yy') and to_date('31-JAN-11 23:59:59','dd-mm-yy hh24:mi:ss'))
WHEN MATCHED THEN
UPDATE
SET rerate_flag_code = rr.detail_rerate_flag_code,
rerate_sel_key = rr.rerate_sel_key,
rerate_adj_inv_code = rr.rerate_adj_inv_code
WHEN NOT MATCHED THEN
INSERT (file_key) VALUES (NULL);
set linesize 1000
set pagesize 1000
set trimspool on
select * from table(sys.dbms_xplan.display('','TTT','ALL'));
rollback;
[Updated on: Mon, 31 October 2011 13:52] Report message to a moderator
|
|
|
|
|
|
|
Re: Merge statement tuning for 100M records in table [message #529430 is a reply to message #529419] |
Mon, 31 October 2011 17:48 |
|
LNossov
Messages: 318 Registered: July 2011 Location: Germany
|
Senior Member |
|
|
Today isn't my day . I overlooked partition pruning, which was already used in the explain plan:
|* 14 | TABLE ACCESS FULL| DWH_BILL_DET | 102M| 42G| 40027 (11)| 00:08:01 | KEY | KEY | Q1,02 | PCWP | |
So the following sql should be ok:
MERGE /*+ use_hash(rq) parallel(rq 8) full (rq) */
INTO DWH_BILL_DET rq
USING (SELECT /*+ use_hash(prd_rerate_chg_que) parallel(prd_rerate_chg_que 8) */ rated_que_rowid,
detail_rerate_flag_code,
rerate_sel_key,
rerate_adj_inv_code
FROM prd_rerate_chg_que PARTITION(SYS_P62532)
WHERE rerate_adj_inv_code >= 0
AND rerate_sel_key NOT IN
(SELECT /*+ unnest use_hash(prd_rerate_sel) */ rerate_sel_key
FROM prd_rerate_sel
WHERE status = 'Cancelled'
AND rerate_batch_key = 24)) rr
ON (rq.rowid = rr.rated_que_rowid and rq.call_start_dttm between to_date('01-JAN-11','dd-mm-yy') and to_date('31-JAN-11 23:59:59','dd-mm-yy hh24:mi:ss'))
WHEN MATCHED THEN
UPDATE
SET rerate_flag_code = rr.detail_rerate_flag_code,
rerate_sel_key = rr.rerate_sel_key,
rerate_adj_inv_code = rr.rerate_adj_inv_code
WHEN NOT MATCHED THEN
INSERT (file_key) VALUES (NULL);
|
|
|
|
|
|
|
Re: Merge statement tuning for 100M records in table [message #529625 is a reply to message #529623] |
Wed, 02 November 2011 04:03 |
|
sachi09
Messages: 22 Registered: October 2011 Location: India
|
Junior Member |
|
|
Yes, session was enabled parallel DML, Actually im on 11g, do I really need to set it? I have 64 CPU m/c, No other load was running on system.
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 2333175250
----------------------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop | TQ |IN-OUT| PQ Distrib |
----------------------------------------------------------------------------------------------------------------------------------------------
| 0 | MERGE STATEMENT | | 1 | 481 | 8019 (15)| 00:01:37 | | | | | |
| 1 | MERGE | DWH_BILL_DET | | | | | | | | | |
| 2 | PX COORDINATOR | | | | | | | | | | |
| 3 | PX SEND QC (RANDOM) | :TQ10003 | 1 | 509 | 8019 (15)| 00:01:37 | | | Q1,03 | P->S | QC (RAND) |
| 4 | VIEW | | | | | | | | Q1,03 | PCWP | |
|* 5 | HASH JOIN ANTI SNA | | 1 | 509 | 8019 (15)| 00:01:37 | | | Q1,03 | PCWP | |
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|* 6 | HASH JOIN OUTER | | 1 | 493 | 8013 (15)| 00:01:37 | | | Q1,03 | PCWP | |
| 7 | PX RECEIVE | | 1 | 51 | 2 (0)| 00:00:01 | | | Q1,03 | PCWP | |
| 8 | PX SEND HASH | :TQ10001 | 1 | 51 | 2 (0)| 00:00:01 | | | Q1,01 | P->P | HASH |
| 9 | PX BLOCK ITERATOR | | 1 | 51 | 2 (0)| 00:00:01 | 1 | 1 | Q1,01 | PCWC | |
|* 10 | TABLE ACCESS FULL| PRD_RERATE_CHG_QUE | 1 | 51 | 2 (0)| 00:00:01 | 1 | 1 | Q1,01 | PCWP | |
| 11 | PX RECEIVE | | 113M| 46G| 7978 (15)| 00:01:36 | | | Q1,03 | PCWP | |
| 12 | PX SEND HASH | :TQ10002 | 113M| 46G| 7978 (15)| 00:01:36 | | | Q1,02 | P->P | HASH |
| 13 | PX BLOCK ITERATOR | | 113M| 46G| 7978 (15)| 00:01:36 | 1 | 8 | Q1,02 | PCWC | |
| 14 | TABLE ACCESS FULL| DWH_BILL_DET | 113M| 46G| 7978 (15)| 00:01:36 | 1 | 2928 | Q1,02 | PCWP | |
| 15 | BUFFER SORT | | | | | | | | Q1,03 | PCWC | |
| 16 | PX RECEIVE | | 1 | 16 | 5 (0)| 00:00:01 | | | Q1,03 | PCWP | |
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 17 | PX SEND BROADCAST | :TQ10000 | 1 | 16 | 5 (0)| 00:00:01 | | | | S->P | BROADCAST |
|* 18 | TABLE ACCESS FULL | PRD_RERATE_SEL | 1 | 16 | 5 (0)| 00:00:01 | | | | | |
----------------------------------------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
5 - access("RERATE_SEL_KEY"="RERATE_SEL_KEY")
6 - access("RQ".ROWID(+)="RATED_QUE_ROWID")
10 - filter("RERATE_ADJ_INV_CODE">=0)
18 - filter("RERATE_BATCH_KEY"=49 AND "STATUS"='Cancelled')
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Note
-----
- dynamic sampling used for this statement (level=5)
37 rows selected.
SQL>
|
|
|
|
|
|
|
|
|
Goto Forum:
Current Time: Sun Jan 26 13:52:26 CST 2025
|