martes, 13 de marzo de 2012

ORACLE TUNING

Una de las mayores responsabilidades de un DBA es garantizar que la base de datos de Oracle se sintoniza correctamente. El RDBMS de Oracle es altamente tuneable y permite que la base de datos para ser monitoreados, regulados para optimizar y aumentar el rendimiento de la BD.

¿QUE GANAMOS AL TUNEAR?

- Mejorar el tiempo de respuesta de la base de datos.
- Disponibilidad de servicio de la base de datos.
- Mejorar el uso de la memoria.
- Mejorar de porcentaje de hits.
- Pocas esperas de los recursos (waits).


¿QUÉ PODEMOS OPTIMIZAR?

- Sentencias SQL y PL/SQL.
- Diseño lógico de la base de datos.
- Diseño físico de la base de datos.
- Parámetros de la base de datos.
- Sistema operativo y hardware.


¿QUÉ MECANISMOS PODEMOS REALIZAR PARA HACER UN : AUTOMATIC SQL TUNING ?.

Se puede realizar AUTOMATIC SQL TUNING usando:

- SQL TUNING ADVISOR
- SQL ACCESS ADVISOR


DUMMY #1:

En esta oportunidad mostrare el manejo del: SQL TUNING ADVISOR, desde la creación de las tablas hasta el de los QUERYs y DECLARE que brindan el soporte al Tuning respectivo.

-- ================================================= --
-1- CREAR TABLAS, INSERTs Y CONSTRAINTs PARA EL DUMMY --
-- ================================================= --
CODIGO en el adjunto [AL FINAL].

-- ========================== --
-2- CREAR LA [TAREA DE TUNING] --
-- ========================== --
[CÓDIGO AL FINAL].

-- ============================================== --
-3- VERIFICAR QUE LA [TAREA DE TUNING] ESTE CREADA --
-- ============================================== --
[CÓDIGO AL FINAL].

-- ==================================== --
-4- EJECUTAR LA [TAREA DE TUNING] CREADA --
-- ==================================== --
[CÓDIGO AL FINAL].

-- =========================================== --
-5- CONTROLAR EL ESTADO DE LA [TAREA DE TUNING] --
-- =========================================== --
[CÓDIGO AL FINAL].

-- ============================================== --
-6- CONTROLAR EL PROGRESO DEL [SQL TUNING ADVISOR] --
-- ============================================== --
[CÓDIGO AL FINAL].

-- ============================================= --
-7- MOSTRAR EL RESULTADO DEL [SQL TUNING ADVISOR] --
-- ============================================= --
[CÓDIGO AL FINAL].

-- ==================================== --
-8- ELIMINAR LA [TAREA DE TUNING] CREADA --
-- ==================================== --
[CÓDIGO AL FINAL].


DUMMY #2:

En este DUMMY mostrare la diferencia al desarrollar QUERYs: CON y SIN INDICES, mediante un análisis por medio de: EXPLAIN PLAN TOOL.

Creamos la TABLA y generamos los INSERTs respectivos (200000 registros):

Mediante la herramienta PL/SQL DEVELOPER accedermos a la vista de EXPLAIN PLAN:

PRUEBA #1 (SIN APLICACIÓN DE INDICES): Ejecutaros un QUERY que lo FILTRAREMOS mediante 2 variables de tipo BIND que representan a cualquier posible variable a reemplazar.

PRUEBA #2 (SIN APLICACIÓN DE INDICES): Ejecutaros un QUERY que lo FILTRAREMOS mediante 2 parámetros de búsqueda.

IMPORTANTE: El RESULTADO al ejecutar el QUERY con PARAMETROS FIJOS y con VARIABLES BIND, NO siempre es el mismo, así que uno NO DEBE CONFIAR.

Ahora PROBAREMOS los QUERYs anteriores pero antes le CREAMOS y asignaremos un INDEX para mejorar y optimizar los
FILTROS en base a los dos parámetros de tipo VARCHAR2.

PRUEBA #3 (CON APLICACIÓN DE INDICES): Ejecutaros el mismo QUERY de la PRUEBA #1, FILTRANDOLO mediante 2 variables de tipo BIND que representan a cualquier posible variable a reemplazar.

PRUEBA #4 (CON APLICACIÓN DE INDICES): Ejecutaros el mismo QUERY de la PRUEBA #2, FILTRANDOLO mediante 2 parámetros fijos.

CONCLUSIONES:

Es notorio que al aplicar un correcto manejo de INDICES el rendimiento en la consulta SQL es mayor y optimizado, decrementando considerablemente en recursos como: COST y en BYTES.

Para un mejor entendimiento del TEMA posteado (CÓDIGO) podemos descargar el TUTORIAL paso a paso de: AQUI.

No hay comentarios:

Publicar un comentario