Sei sulla pagina 1di 8

1

Ampliacin de Bases de Datos


Optimizacin de consultas
en Oracle
Ampliacin de Bases de Datos 2
Conceptos
Optimizacin
Proceso de eleccin de la forma ms eficiente
de ejecutar una sentencia SQL
2 enfoques en Oracle 9i
CBO Cost-Based Optimization
RBO Rule-Based Optimization
Planes de ejecucin (QEP)
Combinacin de pasos para ejecutar una
consulta
unos recuperan datos de las tablas
otros usan los datos recuperados
2
Ampliacin de Bases de Datos 3
Conceptos
Descomposicin jerrquica de operaciones
Primero operaciones en nodos hojas
los pasos de un plan de ejecucin no se ejecutan en el
orden de numeracin
Las tuplas devueltas por cada operacin son la
entrada para su operacin padre
Caminos de acceso
Distintas formas de acceder a los datos
No siempre puede utilizarse todos los
disponibles
Ampliacin de Bases de Datos 4
Arquitectura de procesamiento
Analizador
realiza anlisis sintctico
realiza anlisis semntico
Optimizador
genera plan ptimo de ejecucin
Generador de fuentes de tuplas
genera plan de ejecucin de consultas
(estos 3 componentes forman el compilador SQL)
Motor de ejecucin
realiza el plan de ejecucin asociado a una
consulta
genera los resultados de la consulta
3
Ampliacin de Bases de Datos 5
Arquitectura de procesamiento
Ampliacin de Bases de Datos 6
Pasos en operaciones optimizador
Evaluacin de expresiones y condiciones
Evaluar cuanto antes expresiones con constantes
Transformacin de sentencias
En otras equivalentes ms simples
Eleccin del enfoque de optimizacin
RBO o CBO
Eleccin de los caminos de acceso
Para cada tabla, entre los disponibles
Eleccin del orden de los joins
Cuando hay ms de 2 tablas
Eleccin de los tipos de join
Entre los disponibles
4
Ampliacin de Bases de Datos 7
Ejemplo de plan de ejecucin
EXPLAIN PLAN FOR
SELECT ename, job, sal, dname
FROM emp, dept
WHERE emp.deptno = dept.deptno
AND NOT EXISTS
(SELECT *
FROM salgrade
WHERE emp.sal BETWEEN losal AND hisal);
ID OPERATION OPTIONS OBJECT_NAME
---------------------------------------------------
0 SELECT STATEMENT
1 FILTER
2 NESTED LOOPS
3 TABLE ACCESS FULL EMP
4 TABLE ACCESS BY ROWID DEPT
5 INDEX UNIQUE SCAN PK_DEPTNO
6 TABLE ACCESS FULL SALGRADE
Ampliacin de Bases de Datos 8
Ejemplo de plan de ejecucin
5
Ampliacin de Bases de Datos 9
Optimizador basado en coste
Plan de ejecucin ms eficiente considerando:
Caminos de acceso disponibles
Informacin estadstica de objetos del esquema
Sugerencias del usuario (hints)
Estadsticas
Caractersticas de distribucin y almacenamiento de:
tablas, columnas, ndices y particiones
Uso de histogramas para distribucin
Es el mejor optimizador para nuevas aplicaciones
Y en la versin 10g, el nico!
Imprescindible en datawarehouses
Ampliacin de Bases de Datos 10
Funcionamiento del CBO
3 etapas en el optimizador
Generar QEP potenciales
basado en caminos de acceso y hints
Estimar coste de cada plan
basado en estadsticas del diccionario de datos
coste proporcional al uso de recursos necesarios
incluye CPU, memoria y operaciones e/s a disco
diferente en planes paralelos
Elegir QEP con menor coste
comparando costes de planes potenciales
6
Ampliacin de Bases de Datos 11
Arquitectura del CBO
3 componentes
Transformador de consultas
determina si es ms ventajoso cambiar la consulta
para conseguir un mejor QEP
Estimador
3 tipos de medidas
selectividad: ratio de tuplas que se seleccionarn del
conjunto
cardinalidad: nmero de tuplas en el conjunto
coste: unidades de trabajo o recursos empleados
Generador de planes
considera: caminos de acceso, tipos de join, orden de
los joins
genera subplanes para consultas anidadas
Ampliacin de Bases de Datos 12
Arquitectura del CBO
7
Ampliacin de Bases de Datos 13
CBO. Enfoque optimizacin
2 enfoques optimizacin
Mejor rendimiento, por defecto
recuperacin de todas las tuplas
informes, procesos batch
Menor tiempo de respuesta
recuperacin de la primera fila
aplicaciones interactivas
Ampliacin de Bases de Datos 14
Optimizador basado en reglas
Funcionamiento
Elige el plan de ejecucin utilizando los
caminos de acceso disponibles y el
orden de prioridad fijado
Orden de prioridad heurstico
Siempre elige el camino de acceso con el
rango ms bajo
Normalmente, a menor rango, operaciones
ms rpidas
8
Ampliacin de Bases de Datos 15
Caminos de acceso
Full table scan
ORDER BY on indexed columns
MAX or MIN of indexed column
Sort-merge join
Unbounded range search on
indexed columns
Bounded range search on
indexed columns
Single-column indexes
Composite key
Indexed cluster key
Hash cluster key
Cluster join
Single row by unique or
primary key
Single row by hash cluster key
with unique or prim. key
Single row by cluster join
Single row by rowid
Camino de acceso
11
Bitmap index scan 10
Index join 9
Fast full index scan 8
Sample table scan 7
Caminos de acceso sin rango
(no utilizables por RBO)
6
5
15 4
14 3
13 2
12 1
Rango
Ampliacin de Bases de Datos 16
Posibilidades de optimizacin
Parmetro OPTIMIZER_MODE
CHOOSE
elige CBO si existen estadsticas. Si no, RBO
ALL_ROWS
CBO con objetivo mejor rendimiento
FIRST_ROWS_n
CBO con objetivo menor tiempo de respuesta
n = 1, 10, 100 o 1000
FIRST_ROWS
mezcla CBO y RBO. Obsoleto
RULE
elige RBO
Ej: ALTER SESSION SET OPTIMIZER_MODE = FIRST_ROWS_10

Potrebbero piacerti anche