• No se han encontrado resultados

Grandes volúmenes de datos Plan de ejecución. bases de datos

N/A
N/A
Protected

Academic year: 2021

Share "Grandes volúmenes de datos Plan de ejecución. bases de datos"

Copied!
22
0
0

Texto completo

(1)

Grandes volúmenes de

datos

(2)

Plan de ejecución en Oracle

Plan de ejecución

◦ Es la fase del “parseo” de una sentencia encargada de decidir cómo se va a acceder a los datos solicitados -> se encarga el optimizador.

◦ El optimizador puede trabajar por REGLAS o COSTES (defecto)

◦ En función de si trabaja por REGLAS o COSTES el optimizador debe considerar diversos factores relacionados con los objetos

referenciados y las condiciones especificadas en el query (indices existentes, tamaños de las tablas, histogramas de los datos, num. filas estimadas en la recuperación, etc …)

◦ El resultado es el plan de ejecución (hoja de ruta a seguir para acceder a la información)

(3)

Plan de ejecución en Oracle

EXPLAIN PLAN

Permite consultar

el plan de

ejecución

de una

sentencia

Muestra plan de ejecución  La sentencia no se ejecuta

(4)

Plan de ejecución en Oracle

EXPLAIN PLAN

Inserta una fila por cada paso del plan de

ejecución en una consulta

La tabla en la que se inserte la descripción debe

contener columnas con nombres y tipos de datos

idénticos a la tabla PLAN_TABLE

 proporcionada en el script

$ORACLE_HOME/RDBMS/ADMIN/UTLXPLAN.SQL

(5)

Plan de ejecución en Oracle

 PLAN_TABLE

◦ http://download.oracle.com/docs/cd/B19306_01/server.102/b14 211/ex_plan.htm#i18300

Statement_id varchar2(30)

 Valor opcional para identificar planes de ejecución

Operation varchar2(30)

Nombre de la operación interna realizada

 http://download.oracle.com/docs/cd/B19306_01/server.102/b14211

/ex_plan.htm#i23461 ◦ Options varchar2(225)

Detalles sobre la operación

Object_name varchar2(30)

 Nombre de la tabla o índice

Position numeric

 Para la primera fila indica el coste estimado por el optimizador

para realizar la sentencia.

(6)

Plan de ejecución en Oracle

Sintaxis (reducida)

6 EXPLAIN PLAN

SET STATEMENT_ID = 'texto' INTO esquema.tabla (es la PLAN_TABLE)

(7)

Plan de ejecución en Oracle

Cláusula

set statement_id

◦ Valor para la columna plan_table.statement_id

para las filas del plan de ejecución

◦ Valor por defecto null

Cláusula

into table

◦ Nombre de la tabla de salida

◦ Valor por defecto plan_table

Cláusula

for

Sentencia para la cual se desea conocer el plan de ejecución

(8)

Plan de ejecución en Oracle

Ejemplo. No existe índice

8 explain plan set statement_id = 'e1'

into plan_table

for select nomb_empr from empresas where cpos_empr = '03560';

select operation, options, object_name, position from plan_table

(9)

Plan de ejecución en Oracle

Ejemplo. Existe índice

explain plan set statement_id = 'e2' into plan_table

for select nomb_empr from empresas where cif_empr = 'A1234567';

select operation, options, object_name, position from plan_table

(10)

Ejemplo sin indice

10 explain plan set statement_id='bm1'

for select nume_pedi, fech_pedi from pedidos

where esta_pedi ='R';

(11)

Ejemplo con indice b-tree

explain plan set statement_id='bm2' for select nume_pedi, fech_pedi

from pedidos

where esta_pedi ='R';

create index idx_pedidos_esta_pedi on pedidos (esta_pedi);

(12)

Ejemplo con índice bitmap

12 explain plan set statement_id='bm3'

for select nume_pedi, fech_pedi from pedidos

where esta_pedi ='R';

drop index idx_pedidos_esta_pedi;

create bitmap index bidx_pedidos_esta_pedi on pedidos (esta_pedi);

(13)

Ejemplo. Función aritmética

select nume_pedi, esta_pedi from pedidos

where fech_pedi +5 = '25/05/07'; explain plan set statement_id='bf1' for select nume_pedi, esta_pedi

from pedidos

where fech_pedi +5 = '25/05/07';

(14)

Ejemplo. Función aritmética

14 create index idx_pedidos_fech_pedi on pedidos

(fech_pedi);

explain plan set statement_id='bf2' for select nume_pedi, esta_pedi

from pedidos

where fech_pedi +5 = '25/05/07';

(15)

Ejemplo. Función aritmética

create index fidx_pedidos_fech_pedi on pedidos (fech_pedi+5);

analyze table pedidos compute statistics;

analyze index fidx_pedidos_fech_pedi validate structure;

explain plan set statement_id='bf3' for select nume_pedi, esta_pedi

from pedidos

where fech_pedi +5 = '25/05/07';

No hace falta borrar idx_pedidos_fech_pedi

(16)

Ejemplo. Función aritmética

16 explain plan set statement_id='bf4'

for select nume_pedi, esta_pedi from pedidos

where fech_pedi +5 > '25/05/07';

(17)

Ejemplo. Función aritmética

explain plan set statement_id='bf5' for select nume_pedi, esta_pedi

from pedidos

where fech_pedi +15 > '25/05/07';

YA NO LO USA PUES EL INDICE SE CONSTRUYO CON +5

Plan de ejecución en Oracle

(18)

Ejemplo. Función predefinida SQL

18 explain plan set statement_id='bf6'

for select nomb_empr from empresas

where cif_empr = 'A1234567'; select nomb_empre

from empresas

where cif_empre = 'A1234567';

(19)

Ejemplo. Función SQL

explain plan set statement_id='bf6' for select nomb_empr

from empresas

where substr(cif_empr,1,1) = 'A'; select nomb_empr

from empresas

where substr(cif_empr,1,1) = 'A';

(20)

Ejemplo. Función SQL

20 explain plan set statement_id='bf7'

for select nomb_empr from empresas

where substr(cif_empr,1,1) = 'A';

create index fidx_empresas_cif_empr on empresas (substr(cif_empr,1,1) );

analyze table empresas compute statistics;

analyze index fidx_empresa_cif_empr validate structure;

(21)

Existen utilidades que nos facilitan esta tarea

(22)

 En muchos casos el plan de ejecución es muy complejo

22

Referencias

Documento similar

T02.019- Fecha y usuario del pedido, código, nombre, marca, pvp y precio de venta de los artículos solicitados en el pedido número 1 que sean televisores... select cod,nombre,'tiene

La Comisión Europea pone en marcha una iniciativa piloto de datos de investigación denominada “Open Research Data Pilot in H2020” (ORD Pilot) para depositar los datos en abierto en

Una gestión de datos efectiva tiene lugar a lo largo de todas las fases del ciclo de vida de la investigación, desde planificar el proyecto, la recogida de datos, preparar,

“El Plan de Gestión de Datos es un documento formal que describe los datos producidos en el curso de un proyecto de investigación, tanto en la fase activa, como después de que

El proyecto LEARN tiene como objetivo “tomar como base la Hoja de Ruta LERU de Datos de Investigación ( LERU Roadmap for Research Data ) elaborada por la League of European

Si para construir y evaluar una FBF necesitamos una interpretación y un LPO, para todo esquema de base de datos relacional (BDR) y para cada estado de base de datos

Cuando se realiza una revisión integrativa entorno a un tema como el de la sintomatología presente en los pacientes con enfermedad oncológica avanzada, que motivan el

En Argos los planes de gestión de datos se pueden relacionar con los distintos datasets que se generen dentro de un proyecto determinado; de esa forma, los conjuntos de datos tienen