18 May
UT06: Optimización del rendimiento: Monitorización y Optimización:
1) Herramientas de monitorización disponibles en el sistema gestor:
El objetivo de la monitorización es comprobar que todo está funcionando en la base de datos de forma que alerte cuando se produzca algún evento que deje de funcionar. Esto consume recursos por lo que se debe pensar que monitorizar.
Oracle ofrece las siguientes herramientas de monitorización:
Consola gráfica: Enterprise Mánager:
Herramienta gráfica que posibilita la administración de las bases de datos. Presenta varias herramientas de monitorización la más interesante es:ADDM: Monitor de Diagnóstico de la Base de Datos
Automático. Realiza un análisis del sistema identificando los posibles problemas y sus causas potenciales y plantea soluciones. ADDM se ejecuta periódicamente y guarda la información instantánea recopilada en el repositorio AWR (Automatic Worload Repository). Comprobando las instantáneas puede analizar la evolución de la BD. Entre la información que analiza el ADDM se encuentra:1 Cuellos de botella en la CPU.2 Gestión ineficiente de conexiones.3 Bloqueos.4 Operaciones de entrada/salida.5 Tamaño de las estructuras de memoria.6 Carga de sentencias SQL.7 Tiempo de ejecución de procedimientos PL/SQL y JavaVistas dinámicas:
Vistas del propio catálogo de Oracle. Alacena la totalidad de la información que posee el gestor: estructura de la BD, información del rendimiento, parámetros de inicialización, etc.Las vistas proporcionadas por Oracle tienen el prefijo “V_$”. Por defecto están disponibles para SYS y usuarios con el privilegio “SELECT ANY TABLE”. Las tablas que empiezan por “V$” son sinónimos. Algunas de las vistas son:V$SYSTEM_EVENT: Información sobre las esperas totales por evento y el tiempo de espera.V$SYSSTAT: Estadísticas básicas acumuladas de la instancia, como el uso total de commits o de rollbacks o los bloques de redo leídos.V$SGAINFO: Recoge información sobre el tamaño (bytes) de los elementos del SGA (Shared pool, Large pool, etc). Indica cuál de estos elementos son redimensionables.V$BUFFER_POOL_STATICS: Información sobre las estadísticas de la caché de datos.V$LIBRARYCACHE: Proporciona información sobre el rendimiento de la library cache. Dan información sobre el número de sentencias SQL solicitadas y cuantas rechazadas.V$FILESTAT: Información acerca de las estadísticas de los ficheros de datos escritos y leídos.V$SQL: Información sobre las sentencias SQL en ejecución, incluyendo el consumo de memoria.V$PROCESS: Información acerca de los procesos que se encuentran activos en ese momento, el usuario que lo está usando, el programa que está utilizando, archivo o el tamaño de PGA usado.V$BGPROCESS: Recoge información sobre los procesos en segundo plano, como la descripción de estos y los errores encontrados en ellos.
Repositorio automático de carga de trabajo (AWR):
Ofrece toda la información necesaria para apreciar dónde existe un mayor consumo de recursos dentro de la BD.Los informes de AWR son fotos o instantáneas sobre el estado de la base de datos en un intervalo de tiempo concreto. Los datos presentes en ellos deberán ser analizados sin perder de vista el contexto del tiempo de muestreo y la cantidad de muestras obtenidas, ya que en función de esto los datos son más o menos relevantes. Por defecto las capturas se hacen cada hora.Los informes AWR son útiles para encontrar la causa de algún comportamiento anómalo en la BD o para ver cómo se está comportando y buscar dónde se puede mejorar.
2) Elementos y parámetros susceptibles de ser monitorizados:
Cuando se habla de monitorización se busca la optimización del rendimiento. Estos son algunos de los componentes monitorizados en la base de datos: Actividad de usuarios, detalles sobre las tablas y sesiones, etc.
3) Optimización del uso de la memoria, consultas, espacio de almacenamiento:
Asesores de memoria: Analizan el tamaño de la SGA y de la PGA, optimizando el uso de memoria global de la instancia. Asesores de SQL: Asesor de acceso SQL: Analiza consultas realizadas y puede indicar si es conveniente crear índices o vistas materializadas para mejorar los tiempos de respuesta Asesor de ajustes SQL: Analiza sentencias SQL y ofrece optimizaciones sobre las mismas. Asesor de Reparación SQL: Puede analizar y potencialmente aplicar parches a sentencias SQL fallidas. Asesor de segmentos: Proporciona información útil para el dimensionado de los segmentos y para detectar aquellos que deben ser comprimidos. Gestión automática de deshacer: Proporciona información sobre el tamaño del tablespaces de UNO y del tiempo de retención de los datos en él. Gestión de índices: Puede sugerir índices para mejorar la carga de trabajo en conjunto.
4) Herramientas para la creación de alertas de rendimiento:
La capacidad de gestión de la base de datos de Oracle ayuda a los administradores a detectar, diagnosticar y resolver problemas de rendimiento de Oracle y si detecta anomalías informa mediante una alerta al DBA. Están codificadas algunas alertas junto con sus umbrales (valores límite con los que los valores supervisados se comparan). Puede asignar dos umbrales por cada medida: Umbrales de advertencia y crítico.
UT07: Automatización de tareas. Script de administración:
1) Excepciones:
Sirven para tratar errores en tiempo de ejecución, así como errores y situaciones definidas por el usuario. Cuando se produce un error, PL/SQL levanta una excepción y pasa el control a la sección EXCEPTION, que actuará según lo establecido y dará por finalizada la ejecución del bloque actual. Si el bloque no tiene área de excepciones el programa se interrumpe y se muestra el mensaje pertinente. Si tiene área de excepciones el error se propaga a dicha área, emitiendo el mensaje correspondiente o realizando las acciones que se consideren en el programa. EXCEPTIONWHEN excpN THENÓrdenes;WHEN excpN+1 THENÓrdenes;[WHEN OTHERS THENÓrdenes; ] Expresiones predefinidas en PL/SQL: NO_DATA_FOUND: Un SELECT INTO no ha devuelto ningún valor. ZERO_DIVIDE: Se divide un valor entre “0”. TOO_MANY_ROWS: Un SELECT INTO devuelve más de una fila. DUP_VAL_ON_INDEX: Se intenta introducir un duplicado de la clave primaria o de una columna UNIQUE. TIMEOUT_ON_RESOURCE: Si excede el tiempo de espera para un recurso.
Excepciones definidas por el usuario: Se disparan ante un determinado error definido en el programa. Para poder crear excepciones realizamos lo siguiente: Declarar la excepción: Nb_excepción EXCEPTION; Provocar la ejecución de la excepción en la sección ejecutable del programa: RAISE nb_excepción; Concretar qué acciones se deben realizar para tratar el error en el área de excepciones: WHEN nb_excepción THEN órdenes; Oracle permite definir a los usuarios un número de error y un mensaje. RAISE_APPLICATION_ERROR (número,texto); El número debe estar entre -20000 y -20999 El texto debe tener 2048 bytes máx.
2) Triggers:
Bloques PL/SQL que se ejecutan o disparan automáticamente cuando se producen ciertos eventos. Disparadores de tabla: Se disparan cuando se intenta ejecutar un comando de manipulación que afecta a una tabla. Disparador de sustitución: Se disparan cuando se intenta ejecutar un comando de manipulación que afecta a las filas de una tabla. Disparador del sistema: Se disparan cuando ocurre un evento del sistema o una instrucción de definición de datos.Creación de un trigger:
[DECLARE Declaraciones;] BEGIN Acciones; [EXCEPTION Gestión de excepciones;] END; / Cabecera del trigger: Nombre del trigger. Evento de disparo. Puede ser: Orden DML, Definición de datos o un suceso del sistema Restricción del trigger: Condiciona la ejecución del trigger al cumplimiento de la condición. Opcional. Cuerpo del trigger: Código que se ejecutará cuando se produzca el evento y cumplan las condiciones especificadas en la cabecera. Utilización de los Triggers:
Seguridad: Restringen el acceso. Auditorías: Auditan i guardan valores sobre las actualizaciones de la BD. Integridad de Datos: Implementa funcionalidad no estándar. Replicación de Datos: Copian tablas de manera sincronizada a través de réplicas. Datos Derivados: Calculan automáticamente valores que se deriven de otros datos. Control de Eventos: Controla los eventos de forma transparente. Disparadores de tablas: Para crear un trigger hay que tener en cuenta: Momento en que se ejecuta el trigger admite dos valores: Before: Antes del evento. After: después del evento. Evento disparador: puede ser INSERT, DELETE o UPDATE. Tipo de trigger: Número de veces que debe ejecutarse, puede ser: De sentencia: El trigger se ejecuta una vez por evento. De fila: El cuerpo del trigger se ejecuta una vez para cada registro afectado por el evento. Cuerpo del trigger: Acción que debe realizar el trigger. Es un bloque PL/SQL anónimo. Sintaxis:CREATE OR REPLACE TRIGGER nb_trigger{BEFORE | AFTER}{DELETE | INSERT | UPDATE [OF lista_columnas]}ON nombre_tabla[FOR EACH {STATEMENT | ROW [WHEN (condición)] Se pueden combinar eventos de trigger en uno solo, utilizando condiciones. Disparadores de vistas: Disparadores que arrancan al ejecutarse una instrucción de actualización sobre la vista a la que están asociados. Disparadores del sistema: Se arrancan cuando ocurre un evento del sistema o una instrucción de definición de datos. Para crear estos triggers hay que tener el privilegio ADMINITER DATA BASE TRIGGER.Gestión y borrado de triggers: Activar o desactivar: ALTER TRIGGER nb_trigger {ENABLE|DISABLE}; Borrar un trigger: DROP TRIGGER nb_trigger; En el diccionario de datos se almacenan información sobre los triggers en las vistas: USER_OBJECTS USER_TRIGGERS DBA_TRIGGERS.
Deja un comentario