Sei sulla pagina 1di 17

LABORATORIO 8.

Optimización de Consultas SQL a través de


herramientas del SMBD Oracle

GUÍA DE LABORATORIO Nº 8

Actividad de Proyecto No. 10: desarrollar mantenimiento


preventivo, correctivo o proactivo para garantizar niveles de
servicio requeridos por la organización.

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje


Optimización de Consultas SQL a través de
herramientas del SMBD Oracle

Estructura de contenidos.

1. Introducción..............................................................................3

2. Objetivos...................................................................................4

3. Consideraciones.........................................................................5

4. Procedimiento............................................................................6

4.1. Manipulación de índices en la base de datos de la Secretaria de


salud de la Alcaldía de San Antonio del Sena.................................6

4.2. optimización de consultas SQL provistas por Oracle............... 10

4.2.1. Uso del Asesor de Ajustes SQL........................................ 12

5. Evidencias a entregar................................................................17

2
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Optimización de Consultas SQL a través de herramientas del SMBD Oracle

1. Introducción.

En este laboratorio se abordará el tema de la optimización de consultas


con las herramientas del SMBD Oracle con el fin de mejorar la eficiencia
en los tiempos de respuesta de la base de datos usando los recursos
disponibles, en algunas ocasiones la complejidad de la consultas puede
ser causante de una baja en el rendimiento del sistema, por tal motivo
este laboratorio está diseñado para el conocimiento de las herramientas y
métodos para que las BD alcancen un alto grado de eficiencia.

El tener el SMBD en óptimas condiciones depende en gran parte del


diseño de la estructura y de los objetos incorporados a las Bases de
Datos, el siguiente laboratorio abarca los temas de creación de índices,
herramientas para la optimización y algunas recomendaciones en el uso
de las base de datos.

3
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Optimización de Consultas SQL a través de herramientas del SMBD Oracle

2. Objetivos.

Objetivo General.

Aplicar técnicas para optimizar la estructura de


la base de datos y las consultas, a partir del
uso de herramientas de monitoreo para mejorar
el rendimiento y garantizar consistencia e
integridad en los datos.

Objetivos Específicos.

• Usar los recursos para optimizar la base de


datos, mediante las herramientas disponibles
en el sistema.

• Utilizar herramientas para mejorar la


definición y ejecución de consultas en la base
de datos.

• Hacer uso de índices para mejorar el


desempeño a nivel de ordenamientos y
consultas en una Base de Datos.

• Analizar la estructura de la base de datos


para mantener al mínimo las lecturas en
disco y mejorar los tiempos de respuesta.

4
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Optimización de Consultas SQL a través de herramientas del SMBD Oracle

3. Consideraciones.

Antes de realizar los procedimientos planteados en este laboratorio, se


sugiere revisar los siguientes aspectos:

Ítem Descripción
Soporte Teórico Previo al desarrollo de este laboratorio debe haber
revisado:

• AA10OA1.Optimización de Bases de Datos.

• AA10OA2. Índices.

Manejo de sentencias SQL.


Productos • Base de datos de la Secretaria de Salud de la
requeridos alcaldía de San Antonio del SENA o en su defecto
el script de construcción de esta base de datos.

• Base de datos de la Secretaria de Hacienda de la


alcaldía de San Antonio del SENA o en su defecto
el script de construcción de esta base de datos.

• Script con 5 consultas a optimizar sobre la base de


datos de la secretaría de Hacienda, suministrada
en el laboratorio.
Herramientas SW Se requiere tener instalada y configurada la Máquina
virtual proporcionada en la plataforma, con el SMBD
Oracle instalado.

5
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Optimización de Consultas SQL a través de herramientas del SMBD Oracle

4. Procedimiento.

El laboratorio está diseñado para cumplir con los objetivos del tema de
optimización de consulta de los SMBD, está compuesto por: conocimiento
en el manejo y creación de índices, herramientas para la optimización de
la BD y algunas recomendaciones para optimizar el diseño de bases de
datos y consultas.

A continuación se describen las acciones que se deben adelantar en el


laboratorio:

4.1. Manipulación de índices en la base de datos de la Secretaria


de salud de la Alcaldía de San Antonio del Sena.

En este apartado el aprendiz examinará la BD identificando la estructura


de las tablas y analizando el uso de recursos durante la ejecución de
consultas, posteriormente creará los índices necesarios para mejorar el
rendimiento de las mismas, soportando estas acciones en un documento
de control de cambios.

• Ingrese a Oracle SQL Developer y conéctese a la base de datos


“SALUD”, para revisar la información de los índices que poseen las
tablas tenemos dos opciones, a través del explorador de objetos o con
línea de comandos.

Al examinar las tablas de la base de datos se puede encontrar la información


de los índices asociados a esta.

Imagen 1. Consulta de Índices con el explorador de Objetos.

6
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Optimización de Consultas SQL a través de herramientas del SMBD Oracle

O a través de la ejecución de la sentencia:

SELECT INDEX_NAME, TABLE_OWNER, TABLE_NAME, COLUMN_NAME, CO-


LUMN_POSITION, DESCEND
FROM all_ind_columns
WHERE index_owner = ‘SALUD’;
Al ejecutar esta sentencia, se visualiza un listado de los índices que
existen en las tablas de la Instancia Salud, pero al omitir esta condición
se listarían todos los índices del sistema.

Escriba y ejecute en una ventana del editor SQL la sentencia para obtener
los índices que existen sobre la tabla “historialpersona”:

SELECT *
FROM all_ind_columns
WHERE table_name = ‘HISTORIALPERSONA’

Imagen 2. Consulta de indices con sentencias SQL

• Para analizar el comportamiento de las consultas cuando se tienen o


no índices sobre los campos claves, ejecutar la siguiente consulta y
tomar nota del tiempo de ejecución:

SELECT p.idpersona, p.nombre, p.apellido, e.Nombre AS EPS,


ta.descripcion, se.detalle, se.valor
FROM SALUD.persona p, SALUD.historialpersona hist, SALUD.eps
e ,SALUD.tipoafiliado ta, SALUD.servicioeps se
WHERE hist.idpersona=p.idpersona AND e.ideps=hist.ideps AND
ta.idtipoafiliado=hist.tipoafiliado AND se.ideps=e.ideps
ORDER BY p.apellido;

7
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Optimización de Consultas SQL a través de herramientas del SMBD Oracle

Imagen 3. Ejecución de consulta sin índices

¿Cuánto tiempo tardo en recuperar los datos?

Para mejorar el rendimiento en el procesamiento de la consulta, se va


aconstruir un índice, sin embargo, identificar el campo de la tabla sobre el
que se debe crear el índice, requiere de un análisis minucioso del diseño
de la base de datos, en el que se contemplen la lógica y requerimientos
para los que fue construida, esto con el fin de seleccionar el campo que
ofrezca mayor rendimiento al momento de recuperar los datos por medio
de las consultas.

La sentencia SQL que se proporciona a continuación crea en la base de


datos “Salud” un índice llamado “indiceHist” sobre el campo “idpersona”
de la tabla “historialpersona”; este tipo de índice permite indexar campos
con valores que no son únicos o que se repiten dentro de la tabla.

En el modelo de la base de datos de la “SALUD”, todas las transacciones


en que esta involucrado el afiliado, generan un nuevo registro dentro de la
tabla “historialpersona” el cual se identifica mediante un consecutivo único
dentro de esta tabla, por esta razón, cualquier sentencia que incorpore una
búsqueda por el campo “idpersona” resulta ineficiente de no implementar
un índice, debido a que se deben recorrer todos los registros de la tabla
para encontrar aquellos que corresponden al numero de identificación del
afiliado.

8
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Optimización de Consultas SQL a través de herramientas del SMBD Oracle

• Escriba y ejecute en el “SQL Editor” la siguiente sentencia:

CREATE INDEX indicehp ON historialpersona (idpersona);


Verifique que el índice fue efectivamente creado y vuelva a ejecutar la
consulta.

Imagen 4. Disminución de tiempo de ejecución.

¿Cuánto tiempo tardó en ejecutarse la consulta?

Revise el plan de ejecución y analice la incidencia de los índices en los


costos de procesamiento.

Imagen 5. Plan de ejecución

9
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Optimización de Consultas SQL a través de herramientas del SMBD Oracle

4.2. optimización de consultas SQL provistas por Oracle.

En esta sección se hará un reconocimiento de las herramientas para la


optimización de consultas SQL provistas por Oracle, específicamente con
el Asesor de Ajustes SQL y el Asesor de Acceso SQL.

Las sentencias SQL utilizan para su ejecución métodos denominados


“planes de ejecución” que determinan los índices, orden de acceso y
ejecución. El rendimiento de estas sentencias depende de las estadísticas
que usa el optimizador para diseñar los planes de ejecución más eficientes
posible.

Por esta razón iniciaremos esta etapa de la práctica asegurando que las
estadísticas estén siendo recopiladas adecuadamente.

• En el Oracle SQL Developer, ejecute la siguiente sentencia que actualiza


las estadísticas de la tabla indicada:

ANALIZE TABLE historialpersona COMPUTE STATISTICS;


Que es equivalente al comando:

DBMS_STATS.GATHER_TABLE_STATS(SALUD.historialpersona);
El procedimiento para hacerlo desde el Enterprise Manager es:

• Seleccionar la ficha Servidor y allí el enlace Gestionar Estadísticas del


Optimizador. En esta página ir al enlace Recopilar Estadísticasdel
Optimizador.

En el primer paso se determina la granularidad de la recopilación,


seleccione el esquema “SALUD”.

10
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Optimización de Consultas SQL a través de herramientas del SMBD Oracle

Imagen 6. Recopilación de estadísticas usando Enterprise Manager.

• Avanzar al siguiente paso y agregar el esquema Salud. Seleccionarlo


y continuar.

Imagen 7. Selección del esquema

• En este paso se planifica la recopilación de estadísticas, indicando un


nombre, descripción y cuando inicia entre otros, para esta practica
asígnele el nombre “Estadisticas_salud” y configure una repetición de
5 minutos y un inicio inmediato.

• El siguiente paso presentará un resumen del proceso y quedará listo


para ejecutar. ¿Cuál es la sentencia SQL que se generará?

11
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Optimización de Consultas SQL a través de herramientas del SMBD Oracle

Imagen 8. Resumen de la Recopilación de Estadísticas

Al terminar el trabajo queda almacenado y recopilando estadísticas cada


5 minutos.

4.2.1. Uso del Asesor de Ajustes SQL

Directamente relacionado con la supervisión del rendimiento, se pueden


analizar sentencias SQL y obtener recomendaciones para hacer ajustes
del rendimiento, cuando se han detectado que existen sentencias SQL
que consumen la mayor parte del tiempo de CPU, operaciones de lectura/
escritura y de memoria.

Para utilizar este asesor:

• Seleccione la opción Central de Asesores en la región Enlaces


Relacionados del Enterprise Manager.

• Al seleccionar Asesores de SQL y dirigirse a esa página se encontrarán


las opciones sobre las cuales se puede ejecutar el asesor, ya que es
posible analizar las sentencias actualmente activas, o proporcionar el
bloque de consultas, así como analizar una instantánea o una línea
base. Seleccionar Asesor de Ajustes SQL.

12
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Optimización de Consultas SQL a través de herramientas del SMBD Oracle

Imagen 9. Central de Asesores SQL

Los Asesores de SQL están diseñados para el ajuste de casi todas las
sentencias SQL que serían de interés para el usuario. Las sentencias SQL
de estas fuentes entrantes típicamente se cargan en primer lugar en un
nuevo objeto denominado Juego de Ajustes SQL, que luego es presentado
al asesor como entrada.

• Para esta práctica seleccione el Asesor de Ajustes, le llevará a la página


de Planificar Asesor de Ajustes. Crear un nuevo Juego de ajustes
denominado “CARGA SQL SALUD”, Seleccione el método de carga con
una duración de 30 minutos y una frecuencia no mayor a 5 minutos.
Con esto se estarán cargando sentencias SQL durante ese periodo y
frecuencia para su análisis.

• A continuación especifique los filtros que determinarán las sentencias


que serán analizadas. Estas se pueden filtrar por aspectos relacionados
con la ejecución o con la estructura SQL de las sentencias, tal como se
aprecia en la siguiente imagen.

13
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Optimización de Consultas SQL a través de herramientas del SMBD Oracle

Imagen 10. Opciones para filtrar las sentencias a ser cargadas.

• No seleccione ningún filtro (posteriormente lo puede modificar).


Planifique el trabajo para que se ejecute inmediatamente, asígnele
nombre y descripción. Revise el resumen y ejecútelo.

• Una vez construido del juego de ajustes en el que se basará el análisis,


seleccione Planificar Asesor de Ajustes, seleccionando el juego
construido anteriormente y con ejecución inmediata.

• Al ejecutar se indicará el progreso del mismo así como la estadística


de las sentencias analizadas como se aprecia en la siguiente imagen.

14
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Optimización de Consultas SQL a través de herramientas del SMBD Oracle

Imagen 11. Asesor de Ajustes SQL en proceso.

• A terminar la ejecución se obtienen las estadísticas de la tarea.

Imagen 12. Estadísticas de la tarea.

• Explore las diferentes opciones, revise las recomendaciones y los


planes de ejecución. Debe notar que al no colocar filtros adecuados se
está realizando el análisis sobre todas las sentencias SQL y se distrae
la atención respecto a las relacionadas con el procesamiento en la Base
de datos de La Secretaría de salud. Adicionalmente debe propender
por ejecutar sentencias que puedan ser capturadas para el análisis.

• Oracle SQL Developer también cuenta con la opción del Asesor de


Ajustes, el cual analiza la sentencia que actualmente se esté ejecutando.
La imagen a continuación presenta los aspectos generales de esta
funcionalidad.

15
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Optimización de Consultas SQL a través de herramientas del SMBD Oracle

Imagen 13. Asesor de Ajustes en Oracle SQLDeveloper.

A partir de las acciones previamente realizadas se deberá construir una


presentación mostrando el procedimiento efectuado en diez (10) consultas
SQL a ser optimizadas para la base de datos de la secretaría de Hacienda
de la Alcaldía de San Antonio del Sena.

16
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Optimización de Consultas SQL a través de herramientas del SMBD Oracle

5. Evidencias a entregar.

• Documento de control de cambios de creación de índices.

En este documento se deben exponer las mejoras a ser incorporadas


a la Base de Datos de la secretaría de Salud de la alcaldía de San
Antonio del Sena, detallando el comportamiento antes y después de
crear índices. De igual forma se deben efectuar mediciones (tiempos
de respuesta, Uso de memoria, etc.) y el análisis que permitan
evidenciar la importancia de los cambios realizados presentándolos en
el documento.

• Presentación electrónica que muestre las tareas de optimización de


diez consultas SQL asociadas a la secretaría de Hacienda, de las cuales
cinco (5) son suministradas en el laboratorio y las restantes deben
ser propuestas por el aprendiz. Cada consulta debe ser exhibida en
una diapositiva exponiendo el planteamiento original y la versión final
producto de las recomendaciones dadas por las herramientas del SMBD.
En la diapositiva también se debe documentar la mejora incorporada y
justificar el por qué según su criterio.

17
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

Potrebbero piacerti anche