Paralelismo Tabela x Índice

Dúvidas, dicas e atualizações sobre o Treinamento Oracle Performance Diagnostics & Tuning.
Post Reply
FernandoMattos

Paralelismo Tabela x Índice

Post by FernandoMattos »

Bom dia!

Portilho, existe alguma boa pratica de que o paralelismo (degree) setado para a tabela deve ser o mesmo setado para o índice da tabela?

Att,

Fernando

portilho
Site Admin
Posts: 502
Joined: Wed May 29, 2013 8:51 am

Re: Paralelismo Tabela x Índice

Post by portilho »

Acho que não faz sentido deixar igual.

O melhor ponto de paralelismo é relativo ao tamanho do objeto, à quantidade de CPUs disponíveis, e vazão do I/O.

Já que provavelmente a tabela e o índice terão tamanhos diferentes, o ponto ideal de DEGREE de paralelismo dos dois será diferente.

O paralelismo deve ter bom proveito em um Full Table Scan ou Fast Index Scan, e veja abaixo que para os dois tipos de operações, o Oracle considerou que o Custo é bem diferente para o mesmo grau de paralelismo.

O custo foi bem menor para o índice, já que é um objeto menor que a tabela.

SQL> SELECT /*+ PARALLEL(T2 4) FULL(T) */ COUNT(*) FROM T;

COUNT(*)
----------
84938


Plano de ExecuþÒo
----------------------------------------------------------
Plan hash value: 3126468333

--------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |
--------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 68 (0)| 00:00:01 | | | |
| 1 | SORT AGGREGATE | | 1 | | | | | |
| 2 | PX COORDINATOR | | | | | | | |
| 3 | PX SEND QC (RANDOM) | :TQ10000 | 1 | | | Q1,00 | P->S | QC (RAND) |
| 4 | SORT AGGREGATE | | 1 | | | Q1,00 | PCWP | |
| 5 | PX BLOCK ITERATOR | | 98997 | 68 (0)| 00:00:01 | Q1,00 | PCWC | |
| 6 | TABLE ACCESS FULL| T | 98997 | 68 (0)| 00:00:01 | Q1,00 | PCWP | |
--------------------------------------------------------------------------------------------------------

SQL> SELECT /*+ PARALLEL(T2 4) INDEX_FFS(T,IDX_T) */ COUNT(*) FROM T;

COUNT(*)
----------
84938


Plano de ExecuþÒo
----------------------------------------------------------
Plan hash value: 350386828

-----------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |
-----------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 11 (0)| 00:00:01 | | | |
| 1 | SORT AGGREGATE | | 1 | | | | | |
| 2 | PX COORDINATOR | | | | | | | |
| 3 | PX SEND QC (RANDOM) | :TQ10000 | 1 | | | Q1,00 | P->S | QC (RAND) |
| 4 | SORT AGGREGATE | | 1 | | | Q1,00 | PCWP | |
| 5 | PX BLOCK ITERATOR | | 98997 | 11 (0)| 00:00:01 | Q1,00 | PCWC | |
| 6 | INDEX FAST FULL SCAN| IDX_T | 98997 | 11 (0)| 00:00:01 | Q1,00 | PCWP | |
-----------------------------------------------------------------------------------------------------------

SQL>

FernandoMattos

Re: Paralelismo Tabela x Índice

Post by FernandoMattos »

Muito Obrigado!

portilho
Site Admin
Posts: 502
Joined: Wed May 29, 2013 8:51 am

Re: Paralelismo Tabela x Índice

Post by portilho »

:-D

Post Reply