Custo Execução de Queries
-
Upload
carlos-pampulim-caldeira -
Category
Documents
-
view
338 -
download
2
Transcript of Custo Execução de Queries
![Page 1: Custo Execução de Queries](https://reader036.fdocumentos.tips/reader036/viewer/2022082810/557cc41ed8b42a43438b480b/html5/thumbnails/1.jpg)
Custo de Execução de Queries - Oracle -
Administração de Bases de DadosUniversidade de Évora
Carlos Pampulim Caldeira
http://www.di.uevora.pt/~ccaldeira
http://makingdatawork.blogspot.pt
![Page 2: Custo Execução de Queries](https://reader036.fdocumentos.tips/reader036/viewer/2022082810/557cc41ed8b42a43438b480b/html5/thumbnails/2.jpg)
O que fazer?
1. SQL> DESC plan_table;2. Correr o script utlxplan.sql
![Page 3: Custo Execução de Queries](https://reader036.fdocumentos.tips/reader036/viewer/2022082810/557cc41ed8b42a43438b480b/html5/thumbnails/3.jpg)
Plan_table
![Page 4: Custo Execução de Queries](https://reader036.fdocumentos.tips/reader036/viewer/2022082810/557cc41ed8b42a43438b480b/html5/thumbnails/4.jpg)
Explain plan
EXPLAIN PLAN SET STATEMENT_ID = 'DEPARTAMENTO' FORSELECT * FROM "Departamento";
Explained
![Page 5: Custo Execução de Queries](https://reader036.fdocumentos.tips/reader036/viewer/2022082810/557cc41ed8b42a43438b480b/html5/thumbnails/5.jpg)
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';
![Page 6: Custo Execução de Queries](https://reader036.fdocumentos.tips/reader036/viewer/2022082810/557cc41ed8b42a43438b480b/html5/thumbnails/6.jpg)
Ordem das operações
A ordem das operações é a seguinte:• A mais chegada à direita é a primeira a ser
executada, seguida pelas operações em cima;
• Nas operações com mesma posição, a primeira a ser executada é a de topo, seguida pelas operações em cima.
![Page 7: Custo Execução de Queries](https://reader036.fdocumentos.tips/reader036/viewer/2022082810/557cc41ed8b42a43438b480b/html5/thumbnails/7.jpg)
Ordem das operações0 SELECT STATEMENT Cost = 61 MERGE JOIN Cost = 12 TABLE ACCESS BY INDEX ROWID PRODUCT_TYPES TABLE Cost = 13 INDEX FULL SCAN PRODUCT_TYPES_PK INDEX (UNIQUE) Cost =
14 SORT JOIN Cost = 25 TABLE ACCESS FULL PRODUCTS TABLE Cost = 1
Ordem de execução: 3, 2, 5, 4, 1 e 0.
![Page 8: Custo Execução de Queries](https://reader036.fdocumentos.tips/reader036/viewer/2022082810/557cc41ed8b42a43438b480b/html5/thumbnails/8.jpg)
Comparação de planos de execução
0 SELECT STATEMENT Cost = 4………versus0 SELECT STATEMENT Cost = 5………
![Page 9: Custo Execução de Queries](https://reader036.fdocumentos.tips/reader036/viewer/2022082810/557cc41ed8b42a43438b480b/html5/thumbnails/9.jpg)
Sumário
• O tuning é o mecanismo que permite aumentar a performance do SQL;
• O optimizador relacional é o subsistema de um SGBDR que gera planos de execução.