Vous êtes sur la page 1sur 38

BASES DE DATOS II

(DISTRIBUIDAS)

Facultad de Ingeniera y Ciencias


Ingeniera en Sistema e Informtica - Electrnica y Redes

Afinacin de Desempeo de una


BDD y Optimizacin de Consultas
Ing. Jonathan Carrillo
Quito, Septiembre 2017
Contenido:
1. Introduccin
2. Tcnicas para optimizacin de bases de datos
A. Requisitos mnimos
B. Ajuste del sistema
C. Ajuste de la base de datos
D. Ajuste de Aplicacin
3. Rendimiento de Aplicaciones
4. Ajuste de la base de datos
ndice clustered
ndice unclustered o non-clustered
5. Gestin del Rendimiento
Carga de trabajo (workload)
Capacidad del Servidor
Recursos adicionales de hardware y software
Optimizacin/Afinamiento
Contencin
6. Conclusin
Ing. Jonathan Carrillo - Junio 2017
Afinacin de Desempeo de una BDD
1. Introduccin
El rendimiento depende del tamao y nmero de
registros en los archivos, es por aquello que es
indispensable realizar un anlisis de consultas y
transacciones que se espera ejecutar.
Este anlisis determina las estructuras de acceso
(ndices) y las estructuras de almacenamiento
(organizacin de archivos*) de la Base de Datos, en
funcin del tipo de operacin y los atributos que son
tratados en el motor de la Base de Datos.
*archivo/fichero: es una agrupacin de datos como una unidad de
almacenamiento y organizado de forma estructurada .

Ing.Jonathan
Ing. Jonathan
Carrillo
Carrillo
- Junio- Junio
2017 2017
Afinacin de Desempeo de una BDD
1. Introduccin
Para tal efecto existen tcnicas que apoyan a cumplir
con ,os objetivos del diseo fsico de bases de datos,
entre ellos:
A. Requerimientos mnimos
B. Ajuste del Sistema
C. Ajuste de la Base de Datos
D. Ajuste de las aplicaciones

Ing.Jonathan
Ing. Jonathan
Carrillo
Carrillo
- Junio- Junio
2017 2017
Afinacin de Desempeo de una BDD
2. Tcnicas para optimizacin de bases de datos
A. Requerimientos mnimos.
Entre los principales:
> Hardware:
Memoria Fsica (RAM)
Memoria Virtual
Procesador
Espacio en disco
Adaptacin de Vdeo

Ing.Jonathan
Ing. Jonathan
Carrillo
Carrillo
- Junio- Junio
2017 2017
Afinacin de Desempeo de una BDD
2. Tcnicas para optimizacin de bases de datos
B. Ajuste del sistema.
El software de otros sistemas con los que interacta
el DBMS incluye: el sistema operativo, software de
red, sistemas de colas de mensajes, middleware,
procesadores de transacciones, etc.
Por tal motivo es necesario no solo realizar un
anlisis del comportamiento del DBMS, sino una
evaluacin integral de los sistemas y de esta manera
ajustar y afinar todos los componentes y asegurar un
rendimiento ptimo.

Ing.Jonathan
Ing. Jonathan
Carrillo
Carrillo
- Junio- Junio
2017 2017
Afinacin de Desempeo de una BDD
2. Tcnicas para optimizacin de bases de datos
C. 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, el uso de DDL,
seguridad 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, por lo que se debe
tomar en cuenta que los archivos de datos crecen y
degradan el rendimiento.

Ing.Jonathan
Ing. Jonathan
Carrillo
Carrillo
- Junio- Junio
2017 2017
Afinacin de Desempeo de una BDD
2. Tcnicas para optimizacin de bases de datos
C. Ajuste de la base de datos
As mismo para obtener alto rendimiento de las BDD
es fundamental tomar en cuenta los siguientes
parmetros:
> Seleccionar el tipo de base de datos apropiado
> Disear correctamente la estructura de la base de
base de datos
> Optimizar las consultas SQL
> No almacenar objetos binarios de gran tamao

Ing.Jonathan
Ing. Jonathan
Carrillo
Carrillo
- Junio- Junio
2017 2017
Afinacin de Desempeo de una BDD
2. Tcnicas para optimizacin de bases de datos
D. 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, C#, C ++, Visual Basic, Fox Pro, etc.
En las aplicaciones se debe tomar en cuenta:
> Las cadenas de conexin
> Abrir/Cerrar conexiones en los momentos
apropiados
> No almacenar conexiones y recordsets en objetos
Session o Application

Ing.Jonathan
Ing. Jonathan
Carrillo
Carrillo
- Junio- Junio
2017 2017
Afinacin de Desempeo de una BDD
2. Tcnicas para optimizacin de bases de datos
D. Ajuste de Aplicacin
> Extraer de la base de datos slo la informacin
necesaria
> Utilizar cursores y modos de bloqueo apropiados
> Utilizar variables objeto
> Aumentar el tamao de la cach. Por ejemplo en
la propiedad CacheSize del objeto RecordSet ()
> Una conexin por pgina (Evitar conexiones a
una misma base de datos ms de una vez en una
misma pgina)

Ing.Jonathan
Ing. Jonathan
Carrillo
Carrillo
- Junio- Junio
2017 2017
Afinacin de Desempeo de una BDD
3. Rendimiento de Aplicaciones
Para asegurar la disponibilidad de la aplicacin y el
logro de los acuerdos de nivel de servicio (SLA) con
todas las partes relevantes, el personal del
departamento de TI deben estar al tanto de quin
utiliza la aplicacin, cundo acceden a ella, dnde
se encuentran, qu hacen y mucho ms.
La gestin deficiente del rendimiento de la
aplicacin produce efectos negativos que se pueden
sentir en toda la empresa: desde productividad
reducida de los empleados e ineficacia del
departamento de TI a la insatisfaccin del cliente y
prdida de negocio.

Ing.Jonathan
Ing. Jonathan
Carrillo
Carrillo
- Junio- Junio
2017 2017
Afinacin de Desempeo de una BDD
3. Rendimiento de Aplicaciones
El rendimiento es conocido tambin en la ingeniera
y arquitectura de servidores como Productividad
Rendimiento (Productividad):
Cantidad de Trabajo realizado por el sistema en
una unidad de Tiempo.
Est relacionado con el costo / beneficio de los
sistemas.

Ing.Jonathan
Ing. Jonathan
Carrillo
Carrillo
- Junio- Junio
2017 2017
Afinacin de Desempeo de una BDD
3. Rendimiento de Aplicaciones
El rendimiento debe aplicarse a cada uno de los
componentes del sistema, es decir, productividad de:
CPU, canales de E/S, memoria, etc.
La productividad cuantitativamente se la representa
mediante la siguiente ecuacin:

Para tal efecto es necesaria la caracterizacin de la


carga: Configuracin del sistema, multiprogramacin
permitido por el HW, configuracin del sistema HW
& SW, algoritmos de administracin y asignacin de
recursos, velocidad de los componentes HW & SW.
Ing.Jonathan
Ing. Jonathan
Carrillo
Carrillo
- Junio- Junio
2017 2017
Afinacin de Desempeo de una BDD
4. Ajuste de la base de datos
Seleccin de la organizacin de la estructura de
acceso (ndices)
ndices:
> El ndice de una base de datos es una estructura
de datos que mejora la velocidad de las
operaciones, permitiendo un rpido acceso a los
registros de una tabla o vista.
> Los ndices son construidos sobre rboles B, B+,
B* o sobre una mezcla de ellos, funciones de
clculo u otros mtodos.
La B viene de balanceados

Ing. Jonathan Carrillo - Junio 2017


Afinacin de Desempeo de una BDD
4. Ajuste de la base de datos
Seleccin de la organizacin de la estructura de
acceso (ndices)
ndices:
> Es posible agregar, modificar y quitar ndices sin
que esto afecte al esquema de la base de datos o
al diseo de la aplicacin.
> La caracterstica fundamental es la
predominancia del tiempo de las operaciones de
I/O de disco en el tiempo de ejecucin total, es
decir, busca minimizar el nmero de
operaciones de R/W de bloques de datos del
disco duro o soporte fsico.

Ing. Jonathan Carrillo - Junio 2017


Afinacin de Desempeo de una BDD
4. Ajuste de la base de datos
Seleccin de la organizacin de la estructura de
acceso (ndices)
ndices:
> Varios DBMS crean automticamente ndices
cuando se crea una restriccin "primary key" o
"unique" en una tabla.
> En general, los ndices facilitan la recuperacin
de datos, permitiendo el acceso directo y
acelerando las bsquedas, consultas y otras
operaciones que optimizan el rendimiento
general.

Ing. Jonathan Carrillo - Junio 2017


Afinacin de Desempeo de una BDD
4. Ajuste de la base de datos
Seleccin de la organizacin de la estructura de
acceso (ndices)
ndices:
> Algunos tipos de ndices:
Bitmap Indexes
Reverse Key Indexes
Partitioned Indexes
Ordered Indexes
Clustered Indexes
Non-clustered Indexes
XML Indexes

Ing. Jonathan Carrillo - Junio 2017


Afinacin de Desempeo de una BDD
4. Ajuste de la base de datos
Seleccin de la organizacin de la estructura de
acceso (ndices)
ndices:

Estructura interna de un ndice

Ing. Jonathan Carrillo - Junio 2017


Afinacin de Desempeo de una BDD
4. Ajuste de la base de datos
Seleccin de la organizacin de la estructura de
acceso (ndices)
ndices: En el ndice clustered (agrupado),
la leaf level es la pagina de datos.
En otras palabras, es similar a una
gua telefnica, los registros con el
mismo valor de campo se agrupan
juntos.

Un ndice clustered determina la secuencia de


almacenamiento de los registros en una tabla. Se utilizan
para campos por los que se realizan bsquedas con
frecuencia o se accede siguiendo un orden

Una tabla slo puede tener UN ndice clustered.


El tamao medio de un ndice clustered es
ndice Clustered aproximadamente el 5% del tamao de la tabla.
Ing. Jonathan Carrillo - Junio 2017
Afinacin de Desempeo de una BDD
4. Ajuste de la base de datos
Seleccin de la organizacin de la estructura de
acceso (ndices)
ndices:

ndice Clustered, Mullins C. S.

Ing. Jonathan Carrillo - Junio 2017


Afinacin de Desempeo de una BDD
4. Ajuste de la base de datos
Seleccin de la organizacin de la estructura de
acceso (ndices)
ndices: En un ndice non-clustered (no agrupado) la
clave por la que buscamos tiene un puntero a la
pgina de datos donde se encuentra el registro.
Es como el ndice de un libro, los datos se
almacenan en un lugar diferente al del ndice, los
punteros indican el lugar de almacenamiento de
los elementos indizados en la tabla.
Un ndice non-clustered se emplea cuando se
realizan distintos tipos de bsquedas
frecuentemente, con campos en los que los datos
son nicos. Una tabla puede tener hasta 249
ndices non-clustered.
ndice Non-Clustered Si no se especifica un tipo de ndice, de modo
implcito ser non-clustered.
Ing. Jonathan Carrillo - Junio 2017
Afinacin de Desempeo de una BDD
4. Ajuste de la base de datos
Seleccin de la organizacin de la estructura de
acceso (ndices)
ndices:

ndice Unclustered, Mullins C. S.

Ing. Jonathan Carrillo - Junio 2017


Afinacin de Desempeo de una BDD
4. Ajuste de la base de datos
Seleccin de la organizacin de la estructura de
acceso (ndices)
Cuando se crea un ndice tipo Clustered en alguna
columna de las tablas de la base de datos, la tabla se
ordenar fsicamente por el ndice solicitado.
Cuando se crea un ndice tipo Nonclustered a
diferencia del anterior, no modifican el orden fsico
de los registros en la tabla original, estos ndices
guardan en otra estructura una copia de los valores
involucrados en la clave y un puntero al registro
original de la tabla.

Ing. Jonathan Carrillo - Junio 2017


Afinacin de Desempeo de una BDD
4. Ajuste de la base de datos
Seleccin de la organizacin de la estructura de
acceso (ndices)
Sintaxis ndices:
> Para crear ndices: CREATE INDEX.
Create TIPODEINDICE index
NOMBREINDICE on TABLA(columna/s));
> Para eliminar un ndice debemos emplear la
sentencia DROP INDEX.
Drop index NOMBREINDICE ON TABLA;
> Para modificar un ndice existente: ALTER
INDEX.
Nota: Se debe tomar en cuenta la definicin de las anteriores
estructuras en funcin del DBMS que se est administrando
Ing. Jonathan Carrillo - Junio 2017
Afinacin de Desempeo de una BDD
4. Ajuste de la base de datos
Seleccin de la organizacin de la estructura de
acceso (ndices)
Dnde se encuentran los ndices en el DBMS?:
> Los ndices son objetos de la BDD, es decir, es
una estructura lgica que se almacena en los
archivos de datos. Por lo tanto, los ndices se
encuentran en el mdulo denominado Datos
Almacenados del DBMS.

Ing. Jonathan Carrillo - Junio 2017


Afinacin de Desempeo de una BDD
4. Ajuste de la base de datos
Seleccin de la organizacin de la estructura de
acceso (ndices)
Qu columnas son candidatas a tener ndices?:
> Crear ndices para los atributos o conjunto de
atributos que sean clave candidata, es decir,
atributo/s clave primaria que tengan asignada la
restriccin de unicidad

> Se debe crear el menor nmero de ndices


posible para las tablas que se actualicen con
frecuencia, porque la actualizacin de los ndices
ralentiza las operaciones de actualizacin.

Ing. Jonathan Carrillo - Junio 2017


Afinacin de Desempeo de una BDD
4. Ajuste de la base de datos
Seleccin de la organizacin de la estructura de
acceso (ndices)
Qu columnas son candidatas a tener ndices?:
> De uso general en el WHERE o HAVING de las
consultas
> Columnas en donde las consultas utilizan
frecuentemente la clusula GROUP BY.
> Columnas que se utilizan para ordenar los
resultados en una clusula ORDER BY.
> Columnas para referenciar a otra tabla como
clave externa (Foreing key).
> Columnas que especifican condiciones JOIN.

Ing. Jonathan Carrillo - Junio 2017


Afinacin de Desempeo de una BDD
5. Gestin del Rendimiento

Una de las tares principales del DBA es el monitoreo


de rendimiento y afinamiento de la base de datos.
Sin embargo, en la mayora de las ocasiones la
gestin de rendimiento es reactiva.
Los problemas de rendimiento pueden ser causados
por cualquier componente de las TIC: servidores,
red, SO, concurrencia de 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.

Ing.Jonathan
Ing. Jonathan
Carrillo
Carrillo
- Junio- Junio
2017 2017
Afinacin de Desempeo de una BDD
5. Gestin del Rendimiento
Gestin: es la accin de administrar, gobernar,
dirigir, monitorear y concretar objetivos
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:
1. Carga de trabajo (workload).
2. Capacidad del servidor
3. Recursos adicionales de hardware y software.
4. Optimizacin y
5. Contencin.
Ing.Jonathan
Ing. Jonathan
Carrillo
Carrillo
- Junio- Junio
2017 2017
Afinacin de Desempeo de una BDD
5. Gestin del Rendimiento
Factores que influyen en el rendimiento de BDD:
1. Carga de trabajo (workload)
Es el conjunto de todas las peticiones que el
sistema recibe de su entorno durante un periodo
de tiempo dado.
Estas peticiones pueden ser una combinacin de
transacciones en lnea, tareas en batch, consultas
ad hoc, tareas de anlisis de datos, comandos del
sistema ejecutados, entre otras

Ing.Jonathan
Ing. Jonathan
Carrillo
Carrillo
- Junio- Junio
2017 2017
Afinacin de Desempeo de una BDD
5. Gestin del Rendimiento
Factores que influyen en el rendimiento de BDD:
2. Capacidad del Servidor
Se pueden considerar:
La velocidad de entrada-salida
Velocidad del CPU
Velocidad de Memoria
Capacidad de trabajo en paralelo
Eficiencia del sistema operativo
Eficiencia del DBMS.

Ing.Jonathan
Ing. Jonathan
Carrillo
Carrillo
- Junio- Junio
2017 2017
Afinacin de Desempeo de una BDD
5. Gestin del Rendimiento
Factores que influyen en el rendimiento de BDD:
3. Recursos adicionales de hardware y software
Gestor de Transacciones
Gestor de Concurrencia
Gestor de Almacenamiento
Dispositivos de cach
Sistemas RAID de almacenamiento
Configuracin de Red/Comunicaciones
Entre otros

Ing.Jonathan
Ing. Jonathan
Carrillo
Carrillo
- Junio- Junio
2017 2017
Afinacin de Desempeo de una BDD
5. Gestin del Rendimiento
Factores que influyen en el rendimiento de BDD:
4. Optimizacin/Afinamiento
Es la capacidad que tienen las bases de datos
relacionales de realizar acciones correctivas a las
consultas internamente para hacer mas eficiente
el camino de acceso a los datos.
5. 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. Mientras la
contencin aumenta, la capacidad de procesar
datos disminuye.
Ing.Jonathan
Ing. Jonathan
Carrillo
Carrillo
- Junio- Junio
2017 2017
Afinacin de Desempeo de una BDD
5. Gestin del Rendimiento
Por lo anterior, Gestin del rendimiento de base
de datos se puede definir como:
> La Optimizacin y afinamiento del uso de
recursos para incrementar la capacidad de
procesamiento y disminuir la contencin,
permitiendo que sea procesada la mayor carga de
trabajo.
> Afinacin de Desempeo de una BDD es un
proceso proactivo encaminado a detectar posibles
cuellos de botella mediante monitoreo del DBMS
as como lograr que los tiempos de ejecucin de
los distintos procesos de un sistema disminuyan,
haciendo uso del menor nmero de recursos
posibles.
Ing.Jonathan
Ing. Jonathan
Carrillo
Carrillo
- Junio- Junio
2017 2017
Afinacin de Desempeo de una BDD
5. Gestin del Rendimiento
Consideraciones del rendimiento de las BDD:

> Del 75% al 80% de todos los problemas de


rendimiento de una base de datos son causadas
por cdigo pobre SQL
> Aunque un sistema est en un inicio muy
eficiente, puede degradarse por varias razones
como: crecimiento de la Base de Datos, usuarios
adicionales, usuarios concurrentes, cambios en el
negocio, etc.

Ing.Jonathan
Ing. Jonathan
Carrillo
Carrillo
- Junio- Junio
2017 2017
Afinacin de Desempeo de una BDD
5. Gestin del Rendimiento
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. Exists: cierto si el conjunto resultante de la
subconsulta no est vaco. NOT EXISTS: cierto si vaco)
> Ordenamientos innecesarios (group by, union)

Ing.Jonathan
Ing. Jonathan
Carrillo
Carrillo
- Junio- Junio
2017 2017
Afinacin de Desempeo de una BDD
5. Gestin del 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 ).
> 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.

Ing.Jonathan
Ing. Jonathan
Carrillo
Carrillo
- Junio- Junio
2017 2017
Afinacin de Desempeo de una BDD
6. Conclusin
Una infraestructura de
aplicaciones planificada y
afinada podr ayudar a
reducir el tiempo de
respuesta, integrar
operaciones globales,
posibilitar la continuidad
de las actividades y
responder ms
rpidamente al cliente,
todo lo cual se traduce en
un mayor potencial de
crecimiento y rentabilidad
para las organizaciones

Ing. Jonathan Carrillo - Junio 2017

Vous aimerez peut-être aussi