Sunteți pe pagina 1din 35

CAPITULO VIII

Gestin de rendimiento

Gestin de rendimiento
Una de las tares principales del DBA es el monitoreo de rendimiento y afinamiento de la base de datos. Sin embargo, la gestin de rendimiento de la mayora de las organizaciones es reactiva. El DBA suele estar muy ocupado en su rutina y por esto no tiene tiempo de hacer tareas preventivas.

Definicin de rendimiento
En una organizacin, el manejo de los problemas de rendimiento es algo que compete a toda la empresa. Los problemas de rendimiento pueden ser causados por cualquier componente de las TIC: servidores, red, SO, clientes o base de datos. Poseer una slida comprensin de la infraestructura de TI permite a los DBAs responder eficazmente cuando surgen problemas de rendimiento.

Definicin de rendimiento
Rendimiento es la celeridad con la que la DBMS atiende la demanda de los usuarios. Cinco factores que influyen en el rendimiento de base de datos:
Carga

de trabajo. Capacidad del computador Recursos adicionales de hardware y software. Optimizacin y Contencin.

Definicin de rendimiento
Carga de trabajo es una combinacin de transacciones en lnea, tareas en batch, consultas ad hoc, tareas de anlisis de datos y comandos del sistema ejecutados en un tiempo dado. La carga de trabajo puede variar drsticamente de un da para otro, una hora a otra, e incluso minuto a minuto. A veces la carga de trabajo es predecible y en ocasiones es muy impredecible. Ejemplo de carga de trabajo predecible: a fin de mes.

Definicin de rendimiento

Capacidad del computador para procesar datos est dada por la velocidad de entradasalida, velocidad del CPU, la capacidad de trabajo en paralelo, la eficiencia del sistema operativo y del DBMS. Los recursos adicionales de hardware y software que ayudan al rendimiento del sistema son gestor de transacciones, gestor de colas, dispositivos de cach, sistemas RAID de almacenamiento, etc.

Definicin de rendimiento

Optimizacin es la capacidad que tienen las bases de datos relacionales de optimizar las consultas internamente para hacer mas eficiente el camino de acceso a los datos. Pero hacer mas eficientes las consultas tambin depende de otros factores como se ver mas adelante. La contencin es la condicin en la que dos o mas componentes de la carga de trabajo intentan utilizar un mismo recurso de una manera conflictiva. Ejemplo, dos transacciones quieren actualizar el mismo dato al mismo tiempo. Mientras la contencin aumenta, la capacidad de procesar datos disminuye.

Definicin de rendimiento
El rendimiento de base de datos se puede definir como la optimizacin del uso de recursos para incrementar la capacidad de procesamiento y disminuir la contencin, permitiendo que sea procesada la mayor carga de trabajo.

Hoja de Ruta para alcanzar un buen rendimiento de una Base de Datos


Se disea un plan de gestin de rendimiento, que incluye herramientas de monitoreo y afinamiento. Identificar la reas ms problemticas. Del 75% al 80% de todos los problemas de rendimiento de una base de datos son causadas por cdigo pobre SQL o por lgica de la aplicacin. Aunque un sistema est en un inicio muy eficiente, puede degradarse por varias razones como: crecimiento de la BD, usuarios adicionales, cambios en el negocio, etc.

Hoja de Ruta para alcanzar un buen rendimiento de una Base de Datos


Un cdigo SQL pobremente ejecutado puede causar los siguientes problemas que afectan al rendimiento:
Bsquedas secuenciales en las tablas. La falta de ndices adecuados. Creacin de ndices inapropiados. No utilizar los ndices disponibles. Estadsticas de base de datos no actualizadas. Junturas de tablas en un orden no ptimo.

Hoja de Ruta para alcanzar un buen rendimiento de una Base de Datos

Mas problemas causados por un pobre cdigo SQL:


Bsquedas secuenciales en las tablas. Junturas en las aplicaciones en vez de junturas en SQL. Mtodos de junturas no eficientes. Cdigo SQL eficiente dentro de cdigo de aplicaciones ineficiente (bucles). Formulacin de subconsultas ineficientes (exists) Ordenamientos innecesarios (group by, union)

La regla del 80/20


El 80% de los resultados provienen del 20% del esfuerzo. Es decir, que una pequea cantidad de esfuerzo trae la mayora de las recompensas.

CENTRARSE EN LAS CAUSAS MAS PROBABLES DE POBRE RENDIMIENTO


Desde la perspectiva de la optimizacin del rendimiento de bases de datos, el DBA se concentrar en primer lugar en las causas ms probables de los problemas de rendimiento, como es el cdigo SQL. Encontrar el cdigo que produce los problemas es muy difcil ya que ste puede estar escondido en uno de los cientos o incluso miles de programas, en alguna aplicacin o en una consulta de AdHoc.

Herramientas de monitoreo
Para detectar en dnde estn los problemas se deben utilizar herramientas de monitoreo que vienen con las DBMS, tambin se pueden adquirir herramientas de empresas independientes. Normalmente, en estas herramientas se califican a las instrucciones SQL, en base a la cantidad de recursos que consumen, identifican a los programas y usuarios que las ejecutan. La correcta codificacin y puesta a punto de sentencias SQL requiere de un gran esfuerzo.

Otros factores que afectan al rendimiento


Otros factores que afectan al rendimiento son:
La asignacin de memoria (buffer / cach para datos, SQL, autorizacin). Opciones de registro de logs (cach, el tamao del registro, segmentos de rollback en Oracle). Eficiencia de E/S (separacin de las tablas e ndices en el disco, el tamao de la base de datos, archivos fragmentados y extendidos). La carga de trabajo de la aplicacin y de la base de datos en el servidor. Definiciones de esquemas de bases de datos.

Monitoreo vs. Gestin


Por desgracia, el DBA suele atacar el desempeo de una manera reactiva. Al reescribir el cdigo de una aplicacin es proactivo si se lo hace antes de que est terminada. Algunas herramientas controladas por eventos se pueden utilizar para hacer ms fcil el ajuste del rendimiento de forma automtica, tomando acciones predefinidas cuando se activan las alertas preestablecidas.

Monitoreo vs. Gestin


Gestin = Monitoreo + Plan de resolucin de problemas
Plan de resolucin de problemas Anlisis + Optimizacin.

Monitoreo vs. Gestin


Monitoreo es el primer componente de la gestin de rendimiento. Consiste en recorrer el ambiente de BD, revisando los reportes de rendimiento con las herramientas disponibles, y observando cmo corre el sistema. Monitoreo es el proceso de identificar problemas. Anlisis es el segundo componente de la gestin de rendimiento. El monitoreo puede generar cientos o miles de mensajes, pero no puede tomar decisiones en base a la informacin recolectada, esto requiere del anlisis de un tcnico especializado como el DBA. Optimizacin es la accin correctiva, es el tercer componente de la gestin de rendimiento. Algunas herramientas de rendimiento realizan correcciones de forma automtica, sin embargo, la optimizacin casi siempre requiere de la experiencia del DBA para encontrar las mejores soluciones.

Monitoreo vs. Gestin


Una buena gestin del rendimiento slo se puede lograr mediante un plan proactivo en el que se identifican potenciales problemas y se establecen sus soluciones antes de que ocurran. El DBA debe asegurar el rendimiento desde el diseo de una aplicacin.

Gestin Reactiva frente a proactiva


La gestin proactiva del rendimiento combina prevencin, planificacin y automatizacin para minimizar el monitoreo y afinamiento reactivo. Reduce el esfuerzo, tiempo y errores humanos en la implementacin y mantenimiento de los sistemas de bases de datos. La gestin reactiva el rendimiento, siempre ser necesario porque siempre habrn problemas que ocurrirn y no fue planificada su solucin. La gestin reactiva del rendimiento no es mala del todo, pero es manual y consume mucho tiempo.

Estimacin de Rendimiento en la Preproduccin


Se debe pensar en el rendimiento desde las primeras fases de desarrollo, mientras ms temprano se identifiquen los problemas, resulta menos costoso repararlos.

Preproduccin Estimacin de rendimiento


El costo de los problemas de rendimiento durante todo el ciclo de vida de desarrollo.

Preproduccin Estimacin de rendimiento


La estimacin del rendimiento de una aplicacin no solo comprende el anlisis del cdigo SQL. La aplicacin debe ser revisada totalmente y no solo una parte con el fin de aumentar el rendimiento. El anlisis debe mostrar el efecto global de las consultas y como afectan unas a otras. Crear un mtodo de rendimiento seguro es iterativo y se debe cooperar entre DBA, SA, y desarrolladores.

Tendencia histrica
La evolucin histrica y tendencias de los recursos permite a los administradores de bases predecir la necesidad de actualizaciones de hardware en semanas, y tal vez meses, por adelantado. Esto proporciona una valiosa informacin histrica que puede ser reportada y analizada. El mantenimiento de los indicadores clave del rendimiento histrico puede proporcionar un gran beneficio para los DBAs.

Gestin de Nivel de Servicio


Gestin de nivel de servicio (SLM) es la "metodologa disciplinada, dinmica y procedimientos utilizados para garantizar que los niveles adecuados de servicio se entreguen a todos los usuarios de TI de acuerdo con las prioridades del negocio y a un costo aceptable". MST asegura que los recursos se aplican a las solicitudes en funcin de su importancia para la organizacin.

Gestin de Nivel de Servicio


El SLM enfoca disponibilidad y rendimiento. Eje: 99,95% 09 a.m.-10:00 PM (tiempo de respuesta promedio es de dos segundos o menos para cargas de trabajo de 500 o mas usuarios.") Por un acuerdo de nivel de servicio (SLA) para tener xito, todas las partes implicadas deben estar de acuerdo a los objetivos establecidos para la disponibilidad y el rendimiento.

Gestin de Nivel de Servicio


En una estructura IT tpica es difcil asignar responsabilidades. El grupo desarrollador de aplicaciones trabaja independientemente del DBA y del SA para la aplicacin El SLM hace predecible el rendimiento de una aplicacin. Sin un SLA, los usuarios y el DBA tendrn diferentes expectativas, resultando ejecutivos insatisfechos y DBAs frustrados.

Gestin de Nivel de Servicio


Si los de IT en un entorno de fractura.

Con el SLM el DBA puede administrar sus recursos adecuadamente, invirtiendo de acuerdo a lo que la empresa necesita.

Tipos de Optimizacin del Rendimiento


Una aplicacin de base de datos puede afinarse en tres reas: Ajuste del sistema. Ajuste de base de datos. Ajuste de las aplicaciones.

Ajuste del sistema


El sistema que comprende el DBMS a s mismo y todos los componentes relacionados en la que se basa. El DBMS puede y debe ser ajustado para asegurar un rendimiento ptimo. El software de otros sistemas con los que interacta el DBMS incluye: el sistema operativo, software de red, sistemas de colas de mensajes, middleware y procesadores de transacciones.

Ajuste de la base de datos


El rendimiento puede verse afectado por el diseo fsico de la base de datos, incluyendo la normalizacin, almacenamiento en disco, el nmero de tablas, diseo de ndices, y el uso de DDL y sus parmetros asociados. La ubicacin fsica de los archivos de base de datos en sistemas de disco afecta al rendimiento de las aplicaciones de acceso a los datos. Los archivos de datos crecen y degradan el rendimiento.

Ajuste de la base de datos


LA revisin de los ndices es necesario para evitar impactos negativos en la modificacin de datos.

Ajuste de Aplicacin
El 75% de los problemas de rendimiento son causados por cdigos de aplicaciones no apropiados tanto en SQL como en lenguajes de aplicacin como: Java, COBOL, C + +, o cdigo de Visual Basic.

Ajuste de las herramientas de rendimiento


Muchas herramientas de terceras partes puede gestionar con eficacia el rendimiento de las aplicaciones de base de datos de misin crtica: Monitores de rendimiento. Herramientas de estimacin de rendimiento. Herramientas de planificacin de la capacidad. Anlisis de SQL y herramientas de ajuste. Herramientas de anlisis de Asesoramiento. Herramientas de anlisis. Herramientas de Reorganizacin. Herramientas de seleccin.

Ajuste de las herramientas de rendimiento


El DBA a menudo tendr que utilizar estas herramientas en conjunto con otros integrados y accesibles desde una consola de administracin central. Las herramientas de terceros pueden gestionar el rendimiento en ambientes heterogneos.

S-ar putea să vă placă și