parallel execution bgoug low · who am i ivica arsov - database consultant -pythian - ace associate...

73
Parallel Execution Oracle Database 12c

Upload: votram

Post on 08-Apr-2018

227 views

Category:

Documents


1 download

TRANSCRIPT

ParallelExecutionOracleDatabase12c

WhoAmIIvicaArsov

- Databaseconsultant- Pythian- ACEAssociate- Certifications

- OracleDatabase12cAdministratorCertifiedMaster- OracleDatabase11gAdministratorCertifiedMaster- OracleCertifiedExpert,OracleExadataX3andX4Administrator- OracleCertifiedExpert,OracleRealApplicationClusters11gandGridInfrastructureAdministrator- OracleDatabase12cAdministratorCertifiedProfessional- OracleDatabase11gAdministratorCertifiedProfessional

Blog:https://iarsov.com

LinkedIn:www.linkedin.com/in/iarsov

Twitter:@IvicaArsov

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 2

Agenda

• Parallel Execution Basics

• Auto DOP

• Distribution Methods§ Focus on HASH / BROADCAST

• Blocking/Non-Blocking Operations

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 3

FirstThingsFirst- Terminology

• DOP – number of processes used for single operation

• Producer/Consumer model = DOPx2

• DOP – Degree of Parallelism• TQ – Table Queues

• DFO – Data Flow Operation• DFO Tree – Data Flow Operation Tree

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 4

ParallelismGranules

• The basic unit of work

• Block Range Granules

• Partitions Granules

• No option for enforcing specific granule

• The number of granules correlate with the number of PX servers

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 5

WaystoEnableParallelExecution

• Parallel degree on object levelALTER TABLE ... PARALLEL

• Force parallel executionALTER SESSION FORCE PARALLEL QUERY PARALLEL n

• HintsSELECT /*+ PARALLEL(n) */ ...FROM ...WHERE ...

• Auto DoP§ Optimizer determines the DoP

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 6

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 7

TableQueues

• Serve as communication containers between parallel execution servers

• Related statistics can be found in V$PQ_TQSTAT

DFO_NUMBER

TQ_ID

SERVER_TYPE

NUM_ROWS

BYTES

Other columns: OPEN_TIME, AVG_LATENCY, WAITS, TIMEOUTS, PROCESS, INSTANCE, CON_ID

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 8

select customers.columnfrom customers, saleswhere customers.cust_id = sales.cust_id

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 9

------------------------------------------------------------------------------------------------

| Id | Operation | Name | Rows | Cost (%CPU)| TQ |IN-OUT| PQ Distrib |

------------------------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 918K| 165 (2)| | | |

| 1 | PX COORDINATOR | | | | | | |

| 2 | PX SEND QC (RANDOM) | :TQ10002 | 918K| 165 (2)| Q1,02 | P->S | QC (RAND) |

|* 3 | HASH JOIN BUFFERED | | 918K| 165 (2)| Q1,02 | PCWP | |

| 4 | PX RECEIVE | | 55500 | 74 (0)| Q1,02 | PCWP | |

| 5 | PX SEND HASH | :TQ10000 | 55500 | 74 (0)| Q1,00 | P->P | HASH |

| 6 | PX BLOCK ITERATOR | | 55500 | 74 (0)| Q1,00 | PCWC | |

| 7 | TABLE ACCESS FULL| CUSTOMERS | 55500 | 74 (0)| Q1,00 | PCWP | |

| 8 | PX RECEIVE | | 918K| 90 (2)| Q1,02 | PCWP | |

| 9 | PX SEND HASH | :TQ10001 | 918K| 90 (2)| Q1,01 | P->P | HASH |

| 10 | PX BLOCK ITERATOR | | 918K| 90 (2)| Q1,01 | PCWC | |

| 11 | TABLE ACCESS FULL| SALES | 918K| 90 (2)| Q1,01 | PCWP | |

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 10

6/19/17

T1 :TQ1000

s1

s2

s4

s3

DOP=2

iarsov.com- 2017©IvicaArsovOracleACEAssociate 11

6/19/17

T1s1

s2s2

s1

:TQ1001 T2

DOP=2

:TQ1000

s4

s3

iarsov.com- 2017©IvicaArsovOracleACEAssociate 12

6/19/17

T1 :TQ1000

s1

s2

s4

s3 s2

s1

:TQ1001 T2

:TQ1002

QC

DOP=2

iarsov.com- 2017©IvicaArsovOracleACEAssociate 13

SimpleNo-Sorting/ Producer->Coordinator

SELECT Col1,Col2,Col3,Coln

FROM T1;

--------------------------------------------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |

--------------------------------------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 1000K| 24M| 208 (1)| 00:00:01 | | | |

| 1 | PX COORDINATOR | | | | | | | | |

| 2 | PX SEND QC (RANDOM)| :TQ10000 | 1000K| 24M| 208 (1)| 00:00:01 | Q1,00 | P->S | QC (RAND) |

| 3 | PX BLOCK ITERATOR | | 1000K| 24M| 208 (1)| 00:00:01 | Q1,00 | PCWC | |

| 4 | TABLE ACCESS FULL| T1 | 1000K| 24M| 208 (1)| 00:00:01 | Q1,00 | PCWP | |

--------------------------------------------------------------------------------------------------------------

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 14

SimplePlanSorting/ Producer- ConsumerModel

SELECT Col1,Col2,Col3,Coln

FROM T1

ORDER BY Col2,Col3;

-------------------------------------------------------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |

-------------------------------------------------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 1000K| 24M| | 215 (4)| 00:00:01 | | | |

| 1 | PX COORDINATOR | | | | | | | | | |

| 2 | PX SEND QC (ORDER) | :TQ10001 | 1000K| 24M| | 215 (4)| 00:00:01 | Q1,01 | P->S | QC (ORDER) |

| 3 | SORT ORDER BY | | 1000K| 24M| 34M| 215 (4)| 00:00:01 | Q1,01 | PCWP | |

| 4 | PX RECEIVE | | 1000K| 24M| | 208 (1)| 00:00:01 | Q1,01 | PCWP | |

| 5 | PX SEND RANGE | :TQ10000 | 1000K| 24M| | 208 (1)| 00:00:01 | Q1,00 | P->P | RANGE |

| 6 | PX BLOCK ITERATOR | | 1000K| 24M| | 208 (1)| 00:00:01 | Q1,00 | PCWC | |

| 7 | TABLE ACCESS FULL| T1 | 1000K| 24M| | 208 (1)| 00:00:01 | Q1,00 | PCWP | |

-------------------------------------------------------------------------------------------------------------------------

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 15

SimplePlanSorting/ Producer- ConsumerModel

SELECT Col1,Col2,Col3,Coln

FROM T1

ORDER BY Col2,Col3;

-------------------------------------------------------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |

-------------------------------------------------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 1000K| 24M| | 215 (4)| 00:00:01 | | | |

| 1 | PX COORDINATOR | | | | | | | | | |

| 2 | PX SEND QC (ORDER) | :TQ10001 | 1000K| 24M| | 215 (4)| 00:00:01 | Q1,01 | P->S | QC (ORDER) |

| 3 | SORT ORDER BY | | 1000K| 24M| 34M| 215 (4)| 00:00:01 | Q1,01 | PCWP | |

| 4 | PX RECEIVE | | 1000K| 24M| | 208 (1)| 00:00:01 | Q1,01 | PCWP | |

| 5 | PX SEND RANGE | :TQ10000 | 1000K| 24M| | 208 (1)| 00:00:01 | Q1,00 | P->P | RANGE |

| 6 | PX BLOCK ITERATOR | | 1000K| 24M| | 208 (1)| 00:00:01 | Q1,00 | PCWC | |

| 7 | TABLE ACCESS FULL| T1 | 1000K| 24M| | 208 (1)| 00:00:01 | Q1,00 | PCWP | |

-------------------------------------------------------------------------------------------------------------------------

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 16

DFO(DataFlowOperation)andDFOTrees

• Data Flow Operation - basic unit of work carried by PX servers

• Identified by PX SEND operation

• Multiple DFO’s can appear - One DFO = 1 PX server set is being used- Multiple DFO’s = most of 2 PX server sets are being used

• DFO’s are grouped under one DFO Tree (PX Coordinator)

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 17

DFO(DataFlowOperation)andDFOTrees

---------------------------------------------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |

---------------------------------------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 55500 | 1083K| 147 (0)| 00:00:01 | | | |

| 1 | PX COORDINATOR | | | | | | | | |

| 2 | PX SEND QC (RANDOM)| :TQ10000 | 55500 | 1083K| 147 (0)| 00:00:01 | Q1,00 | P->S | QC (RAND) |

| 3 | PX BLOCK ITERATOR | | 55500 | 1083K| 147 (0)| 00:00:01 | Q1,00 | PCWC | |

| 4 | TABLE ACCESS FULL| CUSTOMERS | 55500 | 1083K| 147 (0)| 00:00:01 | Q1,00 | PCWP | |

---------------------------------------------------------------------------------------------------------------

6/19/17

Data Flow Operation

DFO tree Root

iarsov.com- 2017©IvicaArsovOracleACEAssociate 18

DFO(DataFlowOperation)andDFOTrees

STATISTIC LAST_QUERY SESSION_TOTAL CON_ID

------------------------------ ---------- ------------- ----------

Queries Parallelized 1 3 0

DML Parallelized 0 0 0

DDL Parallelized 0 0 0

DFO Trees 1 4 0

Server Threads 2 0 0

Allocation Height 2 0 0

Allocation Width 1 0 0

Local Msgs Sent 40 106 0

Distr Msgs Sent 0 0 0

Local Msgs Recv'd 38 100 0

Distr Msgs Recv'd 0 0 0

DOP 2 0 0

Slave Sets 1 0 0

6/19/17

view: V$PQ_SESSTAT

iarsov.com- 2017©IvicaArsovOracleACEAssociate 19

AutoDoP

• Optimizer’s estimate decides whether SQL should run in Parallel or Serial mode

• Doesn’t require object level settings nor hints

• Serial queries can suddenly start running in parallel and vice versa

• Controlled by:• PARALLE_DEGREE_POLICY = MANUAL | AUTO | LIMITED | ADAPTIVE

• PARALLEL_MIN_TIME_THRESHOLD = AUTO | integer

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 20

Ways to limit Auto DoP

• PARALLEL_DEGREE_LIMIT - system-wide

- CPU | IO | integer

• Resource Manager - user/application level limit

- parallel_degree_limit_p1

What is the maximum auto DoP ?

Max DOP = MIN (DEFAULT DOP, PARALLEL_DEGREE_LIMIT, DBRM DIRECTIVE PARALLEL_DEGREE_LIMIT_P1)

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 21

DistributionMethods

• HASH(HYBRIDHASH12c)

• BROADCAST- algorithmchangein12c

• RANGE

• PARTITION

• ROUNDROBIN

• QC(RANDOM)

• QC(ORDER)

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 22

6/19/17

TableRows

PXslave1

PXslave2

HASHDistribution

HASHFUNCTIO

N

iarsov.com- 2017©IvicaArsovOracleACEAssociate 23

6/19/17

PXslave1

PXslave2

TableRows

BROADCASTDistribution

iarsov.com- 2017©IvicaArsovOracleACEAssociate 24

select count(*) from t1,t2 where t1.id = t2.id;

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 25

-------------------------------------------------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |

-------------------------------------------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 1 | 8 | 1475 (1)| 00:00:01 | | | |

| 1 | SORT AGGREGATE | | 1 | 8 | | | | | |

| 2 | PX COORDINATOR | | | | | | | | |

| 3 | PX SEND QC (RANDOM) | :TQ10002 | 1 | 8 | | | Q1,02 | P->S | QC (RAND) |

| 4 | SORT AGGREGATE | | 1 | 8 | | | Q1,02 | PCWP | |

|* 5 | HASH JOIN | | 100K| 781K| 1475 (1)| 00:00:01 | Q1,02 | PCWP | |

| 6 | PX RECEIVE | | 100K| 292K| 2 (0)| 00:00:01 | Q1,02 | PCWP | |

| 7 | PX SEND HASH | :TQ10000 | 100K| 292K| 2 (0)| 00:00:01 | Q1,00 | P->P | HASH |

| 8 | PX BLOCK ITERATOR | | 100K| 292K| 2 (0)| 00:00:01 | Q1,00 | PCWC | |

| 9 | TABLE ACCESS FULL| T1 | 100K| 292K| 2 (0)| 00:00:01 | Q1,00 | PCWP | |

| 10 | PX RECEIVE | | 1000K| 4882K| 1471 (1)| 00:00:01 | Q1,02 | PCWP | |

| 11 | PX SEND HASH | :TQ10001 | 1000K| 4882K| 1471 (1)| 00:00:01 | Q1,01 | P->P | HASH |

| 12 | PX BLOCK ITERATOR | | 1000K| 4882K| 1471 (1)| 00:00:01 | Q1,01 | PCWC | |

| 13 | TABLE ACCESS FULL| T2 | 1000K| 4882K| 1471 (1)| 00:00:01 | Q1,01 | PCWP | |

-------------------------------------------------------------------------------------------------------------------

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 26

-------------------------------------------------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |

-------------------------------------------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 1 | 8 | 1475 (1)| 00:00:01 | | | |

| 1 | SORT AGGREGATE | | 1 | 8 | | | | | |

| 2 | PX COORDINATOR | | | | | | | | |

| 3 | PX SEND QC (RANDOM) | :TQ10002 | 1 | 8 | | | Q1,02 | P->S | QC (RAND) |

| 4 | SORT AGGREGATE | | 1 | 8 | | | Q1,02 | PCWP | |

|* 5 | HASH JOIN | | 100K| 781K| 1475 (1)| 00:00:01 | Q1,02 | PCWP | |

| 6 | PX RECEIVE | | 100K| 292K| 2 (0)| 00:00:01 | Q1,02 | PCWP | |

| 7 | PX SEND HASH | :TQ10000 | 100K| 292K| 2 (0)| 00:00:01 | Q1,00 | P->P | HASH |

| 8 | PX BLOCK ITERATOR | | 100K| 292K| 2 (0)| 00:00:01 | Q1,00 | PCWC | |

| 9 | TABLE ACCESS FULL| T1 | 100K| 292K| 2 (0)| 00:00:01 | Q1,00 | PCWP | |

| 10 | PX RECEIVE | | 1000K| 4882K| 1471 (1)| 00:00:01 | Q1,02 | PCWP | |

| 11 | PX SEND HASH | :TQ10001 | 1000K| 4882K| 1471 (1)| 00:00:01 | Q1,01 | P->P | HASH |

| 12 | PX BLOCK ITERATOR | | 1000K| 4882K| 1471 (1)| 00:00:01 | Q1,01 | PCWC | |

| 13 | TABLE ACCESS FULL| T2 | 1000K| 4882K| 1471 (1)| 00:00:01 | Q1,01 | PCWP | |

-------------------------------------------------------------------------------------------------------------------

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 27

-------------------------------------------------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |

-------------------------------------------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 1 | 8 | 1475 (1)| 00:00:01 | | | |

| 1 | SORT AGGREGATE | | 1 | 8 | | | | | |

| 2 | PX COORDINATOR | | | | | | | | |

| 3 | PX SEND QC (RANDOM) | :TQ10002 | 1 | 8 | | | Q1,02 | P->S | QC (RAND) |

| 4 | SORT AGGREGATE | | 1 | 8 | | | Q1,02 | PCWP | |

|* 5 | HASH JOIN | | 100K| 781K| 1475 (1)| 00:00:01 | Q1,02 | PCWP | |

| 6 | PX RECEIVE | | 100K| 292K| 2 (0)| 00:00:01 | Q1,02 | PCWP | |

| 7 | PX SEND HASH | :TQ10000 | 100K| 292K| 2 (0)| 00:00:01 | Q1,00 | P->P | HASH |

| 8 | PX BLOCK ITERATOR | | 100K| 292K| 2 (0)| 00:00:01 | Q1,00 | PCWC | |

| 9 | TABLE ACCESS FULL| T1 | 100K| 292K| 2 (0)| 00:00:01 | Q1,00 | PCWP | |

| 10 | PX RECEIVE | | 1000K| 4882K| 1471 (1)| 00:00:01 | Q1,02 | PCWP | |

| 11 | PX SEND HASH | :TQ10001 | 1000K| 4882K| 1471 (1)| 00:00:01 | Q1,01 | P->P | HASH |

| 12 | PX BLOCK ITERATOR | | 1000K| 4882K| 1471 (1)| 00:00:01 | Q1,01 | PCWC | |

| 13 | TABLE ACCESS FULL| T2 | 1000K| 4882K| 1471 (1)| 00:00:01 | Q1,01 | PCWP | |

-------------------------------------------------------------------------------------------------------------------

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 28

TQ_ID SERVER_TYP INSTANCE PROCESS NUM_ROWS PCT GRAPH

---------- ---------- ---------- -------- ---------- ---------- ----------

0 Producer 1 P004 232068 23 #########

P005 265118 27 ##########

P006 232068 23 #########

P007 270746 27 ##########

Consumer 1 P000 250354 25 ##########

P001 249878 25 ##########

P002 249858 25 ##########

P003 249910 25 ##########

6/19/17

Uniform distribution of T1view: V$PQ_TQSTAT

iarsov.com- 2017©IvicaArsovOracleACEAssociate 29

TQ_ID SERVER_TYP INSTANCE PROCESS NUM_ROWS PCT GRAPH

---------- ---------- ---------- -------- ---------- ---------- ----------

...

1 Producer 1 P004 250903 25 #########

P005 251024 25 #########

P006 265834 27 ##########

P007 232239 23 #########

Consumer 1 P000 251126 25 ##########

P001 249062 25 ##########

P002 250674 25 ##########

P003 249138 25 ##########

6/19/17

Uniform distribution of T2view: V$PQ_TQSTAT

iarsov.com- 2017©IvicaArsovOracleACEAssociate 30

HASHDistributionMethod- Skewdata

T1 – 2M rows

T2 – 2M rows

250K rows unique

1750K rows duplicate on T1_ID* column

* T2 has foreign key to T1.ID

select t1.string_rnd,

t2.string_rnd

from t1,t2

where t1.id = t2.t1_id;

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 31

-----------------------------------------------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |

-----------------------------------------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 250K| 12M| 484 (2)| 00:00:01 | | | |

| 1 | PX COORDINATOR | | | | | | | | |

| 2 | PX SEND QC (RANDOM) | :TQ10002 | 250K| 12M| 484 (2)| 00:00:01 | Q1,02 | P->S | QC (RAND) |

|* 3 | HASH JOIN BUFFERED | | 250K| 12M| 484 (2)| 00:00:01 | Q1,02 | PCWP | |

| 4 | PX RECEIVE | | 2000K| 49M| 421 (1)| 00:00:01 | Q1,02 | PCWP | |

| 5 | PX SEND HASH | :TQ10000 | 2000K| 49M| 421 (1)| 00:00:01 | Q1,00 | P->P | HASH |

| 6 | PX BLOCK ITERATOR | | 2000K| 49M| 421 (1)| 00:00:01 | Q1,00 | PCWC | |

| 7 | TABLE ACCESS FULL| T1 | 2000K| 49M| 421 (1)| 00:00:01 | Q1,00 | PCWP | |

| 8 | PX RECEIVE | | 250K| 6347K| 61 (2)| 00:00:01 | Q1,02 | PCWP | |

| 9 | PX SEND HASH | :TQ10001 | 250K| 6347K| 61 (2)| 00:00:01 | Q1,01 | P->P | HASH |

| 10 | PX BLOCK ITERATOR | | 250K| 6347K| 61 (2)| 00:00:01 | Q1,01 | PCWC | |

| 11 | TABLE ACCESS FULL| T2 | 250K| 6347K| 61 (2)| 00:00:01 | Q1,01 | PCWP | |

-----------------------------------------------------------------------------------------------------------------

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 32

TQ_ID SERVER_TYP INSTANCE PROCESS NUM_ROWS PCT GRAPH

---------- ---------- ---------- -------- ---------- ---------- ----------

0 Producer 1 P004 500640 25 #########

P005 498921 25 #########

P006 463007 23 #########

P007 537432 27 ##########

Consumer 1 P000 500363 25 ##########

P001 500256 25 ##########

P002 499609 25 ##########

P003 499772 25 ##########

6/19/17

Uniform distribution of T1view: V$PQ_TQSTAT

iarsov.com- 2017©IvicaArsovOracleACEAssociate 33

TQ_ID SERVER_TYP INSTANCE PROCESS NUM_ROWS PCT GRAPH

---------- ---------- ---------- -------- ---------- ---------- ----------

...

1 Producer 1 P004 502266 25 ##########

P005 493795 25 ##########

P006 502313 25 ##########

P007 501626 25 ##########

Consumer 1 P000 62558 3

P001 62546 3

P002 62427 3

P003 1812469 91 ##########

6/19/17

Non-Uniform distribution of T2view: V$PQ_TQSTAT

iarsov.com- 2017©IvicaArsovOracleACEAssociate 34

HYBRIDHASH

• Adapts the distribution method at runtime

• If number of rows < DOP*2 the source is broadcast

• Identified by PX SEND HYBRID HASH and STATISTICS COLLECTOR

Demo

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 35

HASHDistributionMethod- Skewdata

PARAMETER_NAME PARAMETER_DESC SESS SYS

------------------------ ------------------------------------------------------------ ------ --------

_px_join_skew_handling enables skew handling for parallel joins TRUE TRUE

_px_join_skew_ratio sets skew ratio for parallel joins 10 10

_px_join_skew_minfreq sets minimum frequency(%) for skewed value for parallel joins 30 30

begin

dbms_stats.gather_table_stats(null,'t2',method_opt=>'for all columns size 1 for columns size 254 t1_id',no_invalidate => false);

end;/

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 36

TQ_ID SERVER_TYP INSTANCE PROCESS NUM_ROWS

---------- ---------- ---------- -------- ----------

0 Producer 1 P004 501273

P005 461496

P006 535080

P007 502154

----------

2000003

Consumer 1 P000 499616

P001 500734

P002 499522

P003 500131

6/19/17

Popular value is broadcasted to all processes

view: V$PQ_TQSTAT

iarsov.com- 2017©IvicaArsovOracleACEAssociate 37

TQ_ID SERVER_TYP INSTANCE PROCESS NUM_ROWS

---------- ---------- ---------- -------- ----------

...

1 Producer 1 P004 502266

P005 504034

P006 493762

P007 499938

Consumer 1 P000 499962

P001 499930

P002 499805

P003 500303

6/19/17

ROUND ROBIN / RANDOMDistribution for skew data rows

view: V$PQ_TQSTAT

iarsov.com- 2017©IvicaArsovOracleACEAssociate 38

BROADCASTdistributionmethod

• Mosteffectivewhenoneoftheresultsetsismuchsmallerthantheother

• DataisdistributedtoallPXservers

• Largerresultssetdoesn’thavetobere-distributed

• StatisticsareveryimportantforCBOtogenerateeffectiveplan

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 39

--------------------------------------------------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |

--------------------------------------------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 1 | 2014 | 450 (1)| 00:00:01 | | | |

|* 1 | COUNT STOPKEY | | | | | | | | |

| 2 | PX COORDINATOR | | | | | | | | |

| 3 | PX SEND QC (RANDOM) | :TQ10001 | 1000K| 1920M| 450 (1)| 00:00:01 | Q1,01 | P->S | QC (RAND) |

|* 4 | COUNT STOPKEY | | | | | | Q1,01 | PCWC | |

| 5 | VIEW | | 1000K| 1920M| 450 (1)| 00:00:01 | Q1,01 | PCWP | |

|* 6 | HASH JOIN | | 1000K| 49M| 450 (1)| 00:00:01 | Q1,01 | PCWP | |

| 7 | PX RECEIVE | | 1000K| 24M| 208 (1)| 00:00:01 | Q1,01 | PCWP | |

| 8 | PX SEND BROADCAST | :TQ10000 | 1000K| 24M| 208 (1)| 00:00:01 | Q1,00 | P->P | BROADCAST |

| 9 | PX BLOCK ITERATOR | | 1000K| 24M| 208 (1)| 00:00:01 | Q1,00 | PCWC | |

| 10 | TABLE ACCESS FULL| T1 | 1000K| 24M| 208 (1)| 00:00:01 | Q1,00 | PCWP | |

| 11 | PX BLOCK ITERATOR | | 1000K| 24M| 241 (1)| 00:00:01 | Q1,01 | PCWC | |

| 12 | TABLE ACCESS FULL | T2 | 1000K| 24M| 241 (1)| 00:00:01 | Q1,01 | PCWP | |

--------------------------------------------------------------------------------------------------------------------

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 40

--------------------------------------------------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |

--------------------------------------------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 1 | 2014 | 450 (1)| 00:00:01 | | | |

|* 1 | COUNT STOPKEY | | | | | | | | |

| 2 | PX COORDINATOR | | | | | | | | |

| 3 | PX SEND QC (RANDOM) | :TQ10001 | 1000K| 1920M| 450 (1)| 00:00:01 | Q1,01 | P->S | QC (RAND) |

|* 4 | COUNT STOPKEY | | | | | | Q1,01 | PCWC | |

| 5 | VIEW | | 1000K| 1920M| 450 (1)| 00:00:01 | Q1,01 | PCWP | |

|* 6 | HASH JOIN | | 1000K| 49M| 450 (1)| 00:00:01 | Q1,01 | PCWP | |

| 7 | PX RECEIVE | | 1000K| 24M| 208 (1)| 00:00:01 | Q1,01 | PCWP | |

| 8 | PX SEND BROADCAST | :TQ10000 | 1000K| 24M| 208 (1)| 00:00:01 | Q1,00 | P->P | BROADCAST |

| 9 | PX BLOCK ITERATOR | | 1000K| 24M| 208 (1)| 00:00:01 | Q1,00 | PCWC | |

| 10 | TABLE ACCESS FULL| T1 | 1000K| 24M| 208 (1)| 00:00:01 | Q1,00 | PCWP | |

| 11 | PX BLOCK ITERATOR | | 1000K| 24M| 241 (1)| 00:00:01 | Q1,01 | PCWC | |

| 12 | TABLE ACCESS FULL | T2 | 1000K| 24M| 241 (1)| 00:00:01 | Q1,01 | PCWP | |

--------------------------------------------------------------------------------------------------------------------

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 41

--------------------------------------------------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |

--------------------------------------------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 1 | 2014 | 450 (1)| 00:00:01 | | | |

|* 1 | COUNT STOPKEY | | | | | | | | |

| 2 | PX COORDINATOR | | | | | | | | |

| 3 | PX SEND QC (RANDOM) | :TQ10001 | 1000K| 1920M| 450 (1)| 00:00:01 | Q1,01 | P->S | QC (RAND) |

|* 4 | COUNT STOPKEY | | | | | | Q1,01 | PCWC | |

| 5 | VIEW | | 1000K| 1920M| 450 (1)| 00:00:01 | Q1,01 | PCWP | |

|* 6 | HASH JOIN | | 1000K| 49M| 450 (1)| 00:00:01 | Q1,01 | PCWP | |

| 7 | PX RECEIVE | | 1000K| 24M| 208 (1)| 00:00:01 | Q1,01 | PCWP | |

| 8 | PX SEND BROADCAST | :TQ10000 | 1000K| 24M| 208 (1)| 00:00:01 | Q1,00 | P->P | BROADCAST |

| 9 | PX BLOCK ITERATOR | | 1000K| 24M| 208 (1)| 00:00:01 | Q1,00 | PCWC | |

| 10 | TABLE ACCESS FULL| T1 | 1000K| 24M| 208 (1)| 00:00:01 | Q1,00 | PCWP | |

| 11 | PX BLOCK ITERATOR | | 1000K| 24M| 241 (1)| 00:00:01 | Q1,01 | PCWC | |

| 12 | TABLE ACCESS FULL | T2 | 1000K| 24M| 241 (1)| 00:00:01 | Q1,01 | PCWP | |

--------------------------------------------------------------------------------------------------------------------

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 42

TQ_ID SERVER_TYP INSTANCE PROCESS NUM_ROWS PCT GRAPH

---------- ---------- ---------- -------- ---------- ---------- ----------

0 Producer 1 P004 1005628 25 ##########

P005 1005628 25 ##########

P006 1005628 25 ##########

P007 983116 25 ##########

Consumer 1 P000 1000000 25 ##########

P001 1000000 25 ##########

P002 1000000 25 ##########

P003 1000000 25 ##########

6/19/17

view: V$PQ_TQSTAT

iarsov.com- 2017©IvicaArsovOracleACEAssociate 43

BROADCASTdistributionmethod- 12cchanges

• One virtual table

• One set of parallel query slaves

• inter-process communication is eliminated

• Outer source is fully read by each PX server

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 44

---------------------------------------------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |

---------------------------------------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 1000K| 49M| 450 (1)| 00:00:01 | | | |

| 1 | PX COORDINATOR | | | | | | | | |

| 2 | PX SEND QC (RANDOM) | :TQ10000 | 1000K| 49M| 450 (1)| 00:00:01 | Q1,00 | P->S | QC (RAND) |

|* 3 | HASH JOIN | | 1000K| 49M| 450 (1)| 00:00:01 | Q1,00 | PCWP | |

| 4 | TABLE ACCESS FULL | T1 | 1000K| 24M| 208 (1)| 00:00:01 | Q1,00 | PCWP | |

| 5 | PX BLOCK ITERATOR | | 1000K| 24M| 241 (1)| 00:00:01 | Q1,00 | PCWC | |

| 6 | TABLE ACCESS FULL| T2 | 1000K| 24M| 241 (1)| 00:00:01 | Q1,00 | PCWP | |

---------------------------------------------------------------------------------------------------------------

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 45

---------------------------------------------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |

---------------------------------------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 1000K| 49M| 450 (1)| 00:00:01 | | | |

| 1 | PX COORDINATOR | | | | | | | | |

| 2 | PX SEND QC (RANDOM) | :TQ10000 | 1000K| 49M| 450 (1)| 00:00:01 | Q1,00 | P->S | QC (RAND) |

|* 3 | HASH JOIN | | 1000K| 49M| 450 (1)| 00:00:01 | Q1,00 | PCWP | |

| 4 | TABLE ACCESS FULL | T1 | 1000K| 24M| 208 (1)| 00:00:01 | Q1,00 | PCWP | |

| 5 | PX BLOCK ITERATOR | | 1000K| 24M| 241 (1)| 00:00:01 | Q1,00 | PCWC | |

| 6 | TABLE ACCESS FULL| T2 | 1000K| 24M| 241 (1)| 00:00:01 | Q1,00 | PCWP | |

---------------------------------------------------------------------------------------------------------------

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 46

Blocking/Non-BlockingOperations

• Producer/Consumermodellimitations

• Ifthedatahastobeprocessedbynext(different)PXSlavesetithastobe“parked”

• Trueblockingoperations

• Artificialblockingoperations- HASH JOIN BUFFERED

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 47

TrueBlockingOperations

select count(*) from t1,t2 where t1.id = t2.id;

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 48

-------------------------------------------------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |

-------------------------------------------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 1 | 52 | 901 (1)| 00:00:01 | | | |

| 1 | SORT AGGREGATE | | 1 | 52 | | | | | |

| 2 | PX COORDINATOR | | | | | | | | |

| 3 | PX SEND QC (RANDOM) | :TQ10002 | 1 | 52 | | | Q1,02 | P->S | QC (RAND) |

| 4 | SORT AGGREGATE | | 1 | 52 | | | Q1,02 | PCWP | |

|* 5 | HASH JOIN | | 1000K| 49M| 901 (1)| 00:00:01 | Q1,02 | PCWP | |

| 6 | PX RECEIVE | | 1000K| 24M| 416 (1)| 00:00:01 | Q1,02 | PCWP | |

| 7 | PX SEND HASH | :TQ10000 | 1000K| 24M| 416 (1)| 00:00:01 | Q1,00 | P->P | HASH |

| 8 | PX BLOCK ITERATOR | | 1000K| 24M| 416 (1)| 00:00:01 | Q1,00 | PCWC | |

| 9 | TABLE ACCESS FULL| T1 | 1000K| 24M| 416 (1)| 00:00:01 | Q1,00 | PCWP | |

| 10 | PX RECEIVE | | 1000K| 24M| 481 (1)| 00:00:01 | Q1,02 | PCWP | |

| 11 | PX SEND HASH | :TQ10001 | 1000K| 24M| 481 (1)| 00:00:01 | Q1,01 | P->P | HASH |

| 12 | PX BLOCK ITERATOR | | 1000K| 24M| 481 (1)| 00:00:01 | Q1,01 | PCWC | |

| 13 | TABLE ACCESS FULL| T2 | 1000K| 24M| 481 (1)| 00:00:01 | Q1,01 | PCWP | |

-------------------------------------------------------------------------------------------------------------------6/19/17

TrueBlockingOperations

iarsov.com- 2017©IvicaArsovOracleACEAssociate 49

TrueBlockingOperations

6/19/17

PX1

:TQ10000

PX2

BUILD HASH TABLE

PX1

:TQ10001

PX2

SORT AGGREGATE

PX2

PROBES

PX2

QC

:TQ10002

PX SEND HASH PX SEND HASH

PX SEND QC (RAND)PX RECEIVE PX RECEIVE

True blocking operation

T1 T2

iarsov.com- 2017©IvicaArsovOracleACEAssociate 50

ArtificialBlockingOperations

select t1.*, t2.*from t1,t2 where t1.id = t2.id;

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 51

-----------------------------------------------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |

-----------------------------------------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 1000K| 49M| 901 (1)| 00:00:01 | | | |

| 1 | PX COORDINATOR | | | | | | | | |

| 2 | PX SEND QC (RANDOM) | :TQ10002 | 1000K| 49M| 901 (1)| 00:00:01 | Q1,02 | P->S | QC (RAND) |

|* 3 | HASH JOIN BUFFERED | | 1000K| 49M| 901 (1)| 00:00:01 | Q1,02 | PCWP | |

| 4 | PX RECEIVE | | 1000K| 24M| 416 (1)| 00:00:01 | Q1,02 | PCWP | |

| 5 | PX SEND HASH | :TQ10000 | 1000K| 24M| 416 (1)| 00:00:01 | Q1,00 | P->P | HASH |

| 6 | PX BLOCK ITERATOR | | 1000K| 24M| 416 (1)| 00:00:01 | Q1,00 | PCWC | |

| 7 | TABLE ACCESS FULL| T1 | 1000K| 24M| 416 (1)| 00:00:01 | Q1,00 | PCWP | |

| 8 | PX RECEIVE | | 1000K| 24M| 481 (1)| 00:00:01 | Q1,02 | PCWP | |

| 9 | PX SEND HASH | :TQ10001 | 1000K| 24M| 481 (1)| 00:00:01 | Q1,01 | P->P | HASH |

| 10 | PX BLOCK ITERATOR | | 1000K| 24M| 481 (1)| 00:00:01 | Q1,01 | PCWC | |

| 11 | TABLE ACCESS FULL| T2 | 1000K| 24M| 481 (1)| 00:00:01 | Q1,01 | PCWP | |

-----------------------------------------------------------------------------------------------------------------

6/19/17

ArtificialBlockingOperations

iarsov.com- 2017©IvicaArsovOracleACEAssociate 52

ArtificialBlockingOperations

6/19/17

PX1

:TQ10000

PX2

BUILD HASH TABLE

PX1

:TQ10001

PX2

BUFFERS MATCHED ROWS

QC

:TQ10002

PX SEND HASH PX SEND HASH

PX SEND QC (RAND)PX RECEIVE PX RECEIVE

Artificial blockingoperation

T1 T2

PX2

iarsov.com- 2017©IvicaArsovOracleACEAssociate 53

select t1.*, t2.*from t1,t2 where t1.id = t2.idorder by 1;

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 54

--------------------------------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |--------------------------------------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 200K| 14 (22)| 00:00:01 | | | || 1 | PX COORDINATOR | | | | | | | || 2 | PX SEND QC (ORDER) | :TQ10003 | 200K| 14 (22)| 00:00:01 | Q1,03 | P->S | QC (ORDER) || 3 | SORT ORDER BY | | 200K| 14 (22)| 00:00:01 | Q1,03 | PCWP | || 4 | PX RECEIVE | | 200K| 12 (9)| 00:00:01 | Q1,03 | PCWP | || 5 | PX SEND RANGE | :TQ10002 | 200K| 12 (9)| 00:00:01 | Q1,02 | P->P | RANGE ||* 6 | HASH JOIN BUFFERED | | 200K| 12 (9)| 00:00:01 | Q1,02 | PCWP | || 7 | PX RECEIVE | | 20000 | 3 (0)| 00:00:01 | Q1,02 | PCWP | || 8 | PX SEND HASH | :TQ10000 | 20000 | 3 (0)| 00:00:01 | Q1,00 | P->P | HASH || 9 | PX BLOCK ITERATOR | | 20000 | 3 (0)| 00:00:01 | Q1,00 | PCWC | || 10 | TABLE ACCESS FULL | T2 | 20000 | 3 (0)| 00:00:01 | Q1,00 | PCWP | || 11 | PX RECEIVE | | 200K| 8 (0)| 00:00:01 | Q1,02 | PCWP | || 12 | PX SEND HASH | :TQ10001 | 200K| 8 (0)| 00:00:01 | Q1,01 | P->P | HASH || 13 | PX BLOCK ITERATOR | | 200K| 8 (0)| 00:00:01 | Q1,01 | PCWC | || 14 | TABLE ACCESS FULL | T3 | 200K| 8 (0)| 00:00:01 | Q1,01 | PCWP | |--------------------------------------------------------------------------------------------------------------

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 55

Parallelexecutioninitializationparametersin12.2• Obsoleteandremovedin12.2

parallel_serverparallel_server_instancesparallel_io_cap_enabledparallel_automatic_tuning

• Deprecatedin12.2

parallel_adaptive_multi_user = false

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 56

Parameters

• PARALLEL_MAX_SERVERS

• PARALLEL_MIN_SERVERS

• PARALLEL_THREADS_PER_CPU

• PARALLEL_DEGREE_POLICY

• PARALLEL_DEGREE_LIMIT

• PARALLEL_SERVERS_TARGET

6/19/17

CPU count

Queuing threshold

Parallel max server

GAP ?

iarsov.com- 2017©IvicaArsovOracleACEAssociate 57

PARALLEL_TARGETS_SERVERvsPARALLEL_MAX_SERVERS

Whydoweneedthegap?

• Hints• NO_STATEMENT_QUEUING

• PARALLEL_DEGREE_POLICY=MANUAL|LIMITED

• BYPASSQUEUEsetviaDBMSResourceManager

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 58

PXAllocationWithoutStatementQueuing

Requested DoP Time Status Execute DoP

4 T1 ACTIVE 8

6/19/17

/ / / / / / / // / / / / / / // / / / / / / // / / / / / / // / / / / / / // / / / / / / /

/ / / // / / /

/ FreePXslave

iarsov.com- 2017©IvicaArsovOracleACEAssociate 59

Requested DoP Time Status Execute DoP

4 T1 ACTIVE 8

6 T2 ACTIVE 12

6/19/17

/ / / / / / / // / / / / / / // / / / / / / // / / / / / / // / / / / / / /

/ / / /

/ FreePXslave

PXAllocationWithoutStatementQueuing

iarsov.com- 2017©IvicaArsovOracleACEAssociate 60

Requested DoP Time Status Execute DoP

4 T1 ACTIVE 8

6 T2 ACTIVE 12

8 T3 ACTIVE 16

6/19/17

/ / / / / / / // / / / / / / // / / / / / / /

/ / / /

/ FreePXslave

PXAllocationWithoutStatementQueuing

iarsov.com- 2017©IvicaArsovOracleACEAssociate 61

Requested DoP Time Status Execute DoP

4 T1 ACTIVE 8

6 T2 ACTIVE 12

8 T3 ACTIVE 16

8 T4 ACTIVE 16

6/19/17

/ / / / / / / // / / /

/ FreePXslave

PXAllocationWithoutStatementQueuing

iarsov.com- 2017©IvicaArsovOracleACEAssociate 62

PXAllocationWithoutStatementQueuing

Requested DoP Time Status Execute DoP

4 T1 ACTIVE 8

6 T2 ACTIVE 12

8 T3 ACTIVE 16

8 T4 ACTIVE 16

6 T5 ACTIVE 12

6/19/17

/ FreePXslave

iarsov.com- 2017©IvicaArsovOracleACEAssociate 63

PXAllocationWithoutStatementQueuing

Requested DoP Time Status Execute DoP

4 T1 ACTIVE 8

6 T2 ACTIVE 12

8 T3 ACTIVE 16

8 T4 ACTIVE 16

6 T5 ACTIVE 12

8 T6 ACTIVE 1

6/19/17

/ FreePXslave

iarsov.com- 2017©IvicaArsovOracleACEAssociate 64

PXAllocationWithStatementQueuing

Requested DoP Time Status Execute DoP

4 T1 ACTIVE 8

6/19/17

/ / / / / / / // / / / / / / // / / / / / / // / / / / / / // / / / / / / // / / / / / / /

/ / / // / / /

/ FreePXslave

iarsov.com- 2017©IvicaArsovOracleACEAssociate 65

PXAllocationWithStatementQueuing

Requested DoP Time Status Execute DoP

4 T1 ACTIVE 8

6 T2 ACTIVE 12

6/19/17

/ / / / / / / // / / / / / / // / / / / / / // / / / / / / // / / / / / / /

/ / / /

/ FreePXslave

iarsov.com- 2017©IvicaArsovOracleACEAssociate 66

PXAllocationWithStatementQueuing

Requested DoP Time Status Execute DoP

4 T1 ACTIVE 8

6 T2 ACTIVE 12

8 T3 ACTIVE 16

6/19/17

/ / / / / / / // / / / / / / // / / / / / / /

/ / / /

/ FreePXslave

iarsov.com- 2017©IvicaArsovOracleACEAssociate 67

PXAllocationWithStatementQueuing

Requested DoP Time Status Execute DoP

4 T1 ACTIVE 8

6 T2 ACTIVE 12

8 T3 ACTIVE 16

8 T4 ACTIVE 16

6/19/17

/ / / / / / / // / / /

/ FreePXslave

iarsov.com- 2017©IvicaArsovOracleACEAssociate 68

PXAllocationWithStatementQueuing

Requested DoP Time Status Execute DoP

4 T1 ACTIVE 8

6 T2 ACTIVE 12

8 T3 ACTIVE 16

8 T4 ACTIVE 16

4 T5 ACTIVE 8

6/19/17

/ / / /

/ FreePXslave

iarsov.com- 2017©IvicaArsovOracleACEAssociate 69

PXAllocationWithStatementQueuing

Requested DoP Time Status Execute DoP

4 T1 ACTIVE 8

6 T2 ACTIVE 12

8 T3 ACTIVE 16

8 T4 ACTIVE 16

4 T5 ACTIVE 8

8 T6 QUEUED 16

6/19/17

/ / / /

/ FreePXslave

iarsov.com- 2017©IvicaArsovOracleACEAssociate 70

PXAllocationWithStatementQueuing

Requested DoP Time Status Execute DoP

4 T1 ACTIVE 8

6 T2 ACTIVE 12

8 T3 ACTIVE 16

8 T4 FINISHED 16

4 T5 ACTIVE 8

8 T6 QUEUED 16

6/19/17

/// /

//

//

///

// / /

// / / /

/ FreePXslave

iarsov.com- 2017©IvicaArsovOracleACEAssociate 71

PXAllocationWithStatementQueuing

Requested DoP Time Status Execute DoP

4 T1 ACTIVE 8

6 T2 ACTIVE 12

8 T3 ACTIVE 16

8 T4 FINISHED 16

4 T5 ACTIVE 8

8 T6 ACTIVE 16

6/19/17

/ / / /

/ FreePXslave

iarsov.com- 2017©IvicaArsovOracleACEAssociate 72

Thankyou.

Questions?

6/19/17 iarsov.com- 2017©IvicaArsovOracleACEAssociate 73