Custo Execução Queries | Oracle | 2015

9
Custo de Execução de Queries - Oracle – (versão 2015) Carlos Pampulim Caldeira http://www.di.uevora.pt/~ccaldeira http:// www.linkedin.com/in/carlospampulimcaldeira Administração de Bases de Dados

Transcript of Custo Execução Queries | Oracle | 2015

Custo de Execução de Queries - Oracle –

(versão 2015)

Carlos Pampulim Caldeira

http://www.di.uevora.pt/~ccaldeira

http://www.linkedin.com/in/carlospampulimcaldeira

Administração de Bases de Dados

O que fazer?

1. SQL> DESC plan_table;2. Correr o script utlxplan.sql

Plan_table

Explain plan

EXPLAIN PLAN SET STATEMENT_ID = 'DEPARTAMENTO' FORSELECT * FROM "Departamento";

Plan set succeeded.

Script para ler plan_tableUNDEFINE v_statement_id;

SELECTid ||DECODE(id, 0, '', LPAD(' ', 2*(level - 1))) || ' ' ||operation || ' ' ||options || ' ' ||object_name || ' ' ||object_type || ' ' ||DECODE(cost, NULL, '', 'Cost = ' || position)AS “Plano de Execução”FROM plan_tableCONNECT BY PRIOR id = parent_idAND statement_id = '&&v_statement_id'START WITH id = 0AND statement_id = '&v_statement_id';

Ordem das operações

A ordem das operações é a seguinte:• A mais chegada à direita é a primeira a ser

executada, seguida pelas operações-pai;

• Nas operações com mesma posição, a primeira a ser executada é a de topo, seguida pelas operações-pai.

Ordem das operações0 SELECT STATEMENT Cost = 61 MERGE JOIN Cost = 12 TABLE ACCESS BY INDEX ROWID TIPOS TABLE Cost = 13 INDEX FULL SCAN TIPOS_CP INDEX (UNIQUE) Cost = 14 SORT JOIN Cost = 25 TABLE ACCESS FULL PRODUTOS TABLE Cost = 1

Ordem de execução: 3, 2, 5, 4, 1 e 0.

Comparação de planos de execução

0 SELECT STATEMENT Cost = 4………versus

0 SELECT STATEMENT Cost = 5………

Sumário

• O tuning é o mecanismo que permite aumentar a performance do SQL;

• O optimizador relacional é um subsistema de AI que gera planos de execução.