Estimating a PK index rebuild with REVERSE

From: Luis Santos <lsantos_at_pobox.com>
Date: Wed, 25 Oct 2017 12:10:19 -0200
Message-ID: <CAPWdmV_5C9sZZkomFp=9u8LumLZyhXTfMFmEKwogv_2LpkZCgg_at_mail.gmail.com>



Hi Oracle-L,

I'm trying to estimate the time necessary to recreate a PK index with the reverse clause. Usually I use explain plan to estimate time and size for a new index.

I did a reverse script from the actual PK index using and DBMS_METADATA and issued the explain plan, adding the reverse clause.

It worked nicely, and the output was.

[11g]> _at_xplan
> PLAN_TABLE_OUTPUT
>
> ---------------------------------------------------------------------------------------------------------------------------------------------------
> Plan hash value: 961639110
>
> ---------------------------------------------------------------------------------------------------------------------------------------------
> | Id | Operation | Name | Rows | Bytes |
> Cost (%CPU)| Time | Pstart| Pstop | TQ |IN-OUT| PQ Distrib |
>
> ---------------------------------------------------------------------------------------------------------------------------------------------
> | 0 | CREATE INDEX STATEMENT | | 7462M| 111G|
> 292K (1)| 00:58:27 | | | | | |
> | 1 | PX COORDINATOR | | | |
> | | | | | | |
> | 2 | PX SEND QC (RANDOM) | :TQ10000 | 7462M| 111G|
> | | | | Q1,00 | P->S | QC (RAND) |
> | 3 | PX PARTITION RANGE ALL | | 7462M| 111G|
> | | 1 | 28 | Q1,00 | PCWC | |
> | 4 | INDEX BUILD UNIQUE (LOCAL)| PK_TABLE_DATA1 | | |
> | | 1 | 28 | Q1,00 | PCWP | |
> | 5 | SORT CREATE INDEX | | 7462M| 111G|
> | | | | Q1,00 | PCWP | |
> | 6 | INDEX FAST FULL SCAN | PK_TABLE_DATA1 | 7462M| 111G|
> 124K (1)| 00:24:58 | 1 | 28 | Q1,00 | PCWP | |
>
> ---------------------------------------------------------------------------------------------------------------------------------------------
> Query Block Name / Object Alias (identified by operation id):
> -------------------------------------------------------------
> 1 - CRI$1
> 6 - CRI$1 / TABLE_DATA1_at_CRI$1
> Column Projection Information (identified by operation id):
> -----------------------------------------------------------
> 1 - SYSDEF[272], SYSDEF[4]
> 2 - (#keys=0) SYSDEF[272], SYSDEF[4]
> 3 - SYSDEF[272], SYSDEF[4]
> 4 - SYSDEF[272]
> 5 - (#keys=2) REVERSE("ID_TABLE_DATA1")[22], REVERSE("DATA")[7],
> "TABLE_DATA1".ROWID[ROWID,10]
> 6 - "TABLE_DATA1".ROWID[ROWID,10], "ID_TABLE_DATA1"[NUMBER,22],
> "DATA"[DATE,7]
> Note
> -----
> - estimated index size: 225G bytes

But this is the evaluation phase. The PK was not, of course, already dropped. So the actual non reverse PK index is been used in the create index plan...

How can I disable the access to the actual PK for this explain plan?

Best regards,

*Luis Santos*

--
http://www.freelists.org/webpage/oracle-l
Received on Wed Oct 25 2017 - 16:10:19 CEST

Original text of this message