Datapump and parallel (revisited)



I had convinced myself that despite what is written in the documentation that datapump never did parallel query to extract objects during export.

What i mean by that is that when I've run exports in the past with parallel=x i see loads of datapump slaves start up and multiple tables are extracted at the same time but an individual table is never 'unloaded' in parallel - i.e. the PQ slaves (not the datapump ones) are never used.

this white paper describes how it is meant to work http://download.oracle.com/otndocs/products/database/enterprise_edition/utilities/pdf/datapump11gr2_parallel_1106.pdf


I was doing some more investigation into this to make sure i hadn't missed something in the docs and was doing another test when i actually got it to work......

 The main thing i had done differently for the test was just try to extract a single table in parallel (table not partitioned by the way - just 'big')

so i ran

expdp / tables=big_table dumpfile=bigtable%u.dmp parallel=4

And sure enough i see this






The ringed section sure enough shows PQ slaves being started up and used.

I think previously all my tests have been around full schema extracts and PQ never seems to get used here. I'm not sure if this is a restriction or if some other algorithmn comes into use to decide how this works.

Anyway - it sort of works (well it does work just not in every case),

The worker process parallelism still reports as 1 though for the above example so dont let that confuse you.....



0 comments:

Post a Comment