Sunteți pe pagina 1din 7

TECNICAS PARA LA OPTIMIZACION DE BASES DE DATOS

Harold Castao Giraldo

Servicio nacional de aprendizaje (Sena)


Especializacin Tecnolgica en gestin y seguridad de bases de datos
2017
INTRODUCCION
La creacin de una base de datos, depende de las necesidades de una organizacin y de sus
dependencias, es por esto que debemos de analizar las necesidades y adems de esto
debemos de establecer un caso de estudio donde la prioridad sea mantener, administrar y
mejorar la base de datos.
OPTIMIZACION DE UNA BASE DE DATOS MEDIANTE LA OPTIMIZACION
DE UN MOTOR DE BASES DE DATOS

Optimizacin de bases de datos: La optimizacin del acceso a los datos es vital para el
tiempo de carga de la pgina, debido a que suele ser el factor que ms afecta al tiempo que
tiene que esperar el navegador para recibir el HTML. Este tiempo de espera es muy
importante, ya que el resto de recursos de la pgina (imgenes, scripts y hojas de estilo), no
se empiezan a bajar hasta que el navegador no lee el HTML desde el que se hace referencia
a estos recursos.
Este tipo de optimizacin es probablemente la ms compleja de todas, en primer lugar
porque depende de dos factores variables en el tiempo: por un lado, de cmo y de qu tipo
son las consultas que se van a realizar y, por otro, de la carga de trabajo que tenga que
soportar el servidor o servidores. En segundo lugar por la gran cantidad de conocimientos
que hay que tener para saber reescribir consultas, reescribir el cdigo que ejecuta las
consultas, crear ndices, vistas materializadas, particiones horizontales y verticales, rplicas,
tablas de apoyo, saber elegir los tipos de datos a usar, saber optimizar el esquema sin perder
la lgica del modelo de negocio, saber ajustar los parmetros de configuracin del SGBD,
conocer y saber usar sistemas de cach externos.

Optimizacin de consultas
Cambiar los OR por IN, cuando tenemos ms de un valor para comparar.
Minimizar el coste de los JOIN: La concatenacin natural o JOIN es la operacin ms
costosa de las bases de datos relaciones, ya que requiere realizar una multiplicacin
cartesiana y una seleccin de valores. Algunas tcnicas que podemos usar para minimizar
su efecto consisten en:
Reordenarlos para concatenar primero las relaciones con menos filas para reducir el nmero
de cruces.
Crear subconsultas en donde se filtren o limiten el nmero de filas de las relaciones grandes
antes de realizar los siguientes JOINs.
A veces, dividir una consulta en varias, es mejor que hacerlo todo con una sola consulta, de
forma que podemos obtener en una primera consulta unos pocos identificadores que
podemos pasar con un IN a la siguiente consulta, en lugar de realizar un JOIN.
Cambiar los JOIN por EXISTS si no se va a mostrar ningn dato de la relacin con la que
se realiza el cruce.
Tener en cuenta el problema del N + 1: El n+1 se produce normalmente cuando tenemos un
listado en el que para mostrarlo como queremos, por cada tem necesitamos realizar una
consulta adicional (el ms uno del n+1). En este caso, suele ser mejor realizar uno o varios
JOIN adicionales, en la consulta que recupera el listado de tems. De esta forma obtenemos
el listado tal y como lo necesitamos, y no se tienen que lanzar consultas adicionales para
cada tem.
Especificar siempre los nombres de las columnas en las SELECT, si no el SGBD leer
todas las filas del disco. El asterisco se debe usar s y solo s se utiliza COUNT, en cuyo
caso el SGBD sabr que no tiene que leer todas las columnas.
Crear ndices: los ndices permiten un acceso a los datos no secuencial mucho ms rpido,
pero son costosos de crear, as que no es conveniente su uso si tenemos muchas ms
lecturas que escrituras. Debemos analizar el plan de ejecucin de las consultas (cada SGBD
tiene su manera de verlo) para saber dnde debemos crear ndices.
Normalmente, crearemos los ndices en claves ajenas y en las columnas que se usen con
ORDER BY o WHERE. Si se crean ndices compuestos, se deben poner las columnas en el
mismo orden que se vayan a usar en las consultas.

OPTIMIZACION DE BASES DE DATOS CON SQL SERVER 2012

El Asistente para la optimizacin de motor de base de datos de Microsoft (DTA) analiza las
bases de datos y hace recomendaciones que puede usar para optimizar el rendimiento de las
consultas. Puede usar el Asistente para la optimizacin de motor de base de datos a fin de
seleccionar y crear un conjunto ptimo de ndices, vistas indizadas o particiones de tabla
sin necesidad de conocer detalladamente la estructura de la base de datos ni el
funcionamiento interno de SQL Server. Con DTA, puede realizar las siguientes tareas.
Solucionar problemas del rendimiento de una consulta especfica
Optimizar un conjunto grande de consultas en una o varias bases de datos
Realizar anlisis condicionales de exploracin de posibles cambios de diseo fsicos
Administrar el espacio de almacenamiento.

VENTAJAS
El Asistente para la optimizacin de motor de base de datos de Microsoft (DTA) analiza las
bases de datos y hace recomendaciones que puede usar para optimizar el rendimiento de las
consultas. Puede usar el Asistente para la optimizacin de motor de base de datos a fin de
seleccionar y crear un conjunto ptimo de ndices, vistas indizadas o particiones de tabla
sin necesidad de conocer detalladamente la estructura de la base de datos ni el
funcionamiento interno de SQL Server. Con DTA, puede realizar las siguientes tareas.
Solucionar problemas del rendimiento de una consulta especfica
Optimizar un conjunto grande de consultas en una o varias bases de datos
Realizar anlisis condicionales de exploracin de posibles cambios de diseo fsicos
Administrar el espacio de almacenamiento
Ventajas del Asistente para la optimizacin de motor de base de datos
La optimizacin del rendimiento de las consultas puede ser difcil sin un conocimiento
completo de la estructura de la base de datos y de las consultas que se ejecutan en ella. El
Asistente para la optimizacin de motor de base de datos puede facilitar esta tarea mediante
el anlisis de la memoria cach de plan de consulta actual o de la carga de trabajo de las
consultas de Transact-SQL que crea, y con la recomendacin de un diseo fsico adecuado.
Para administradores de bases de datos ms avanzadas, DTA expone un mecanismo eficaz
para realizar anlisis condicionales de exploracin de diferentes alternativas de diseo
fsico. DTA puede proporcionar la siguiente informacin.
Recomendar la mejor combinacin de ndices para las bases de datos mediante el
uso del optimizador de consultas para analizar las consultas de una carga de trabajo.
Recomendar particiones alineadas y no alineadas para las bases de datos a las que se
hace referencia en una carga de trabajo.
Recomendar vistas indizadas para las bases de datos a las que se hace referencia en
una carga de trabajo.
Analizar los efectos de los cambios propuestos en aspectos tales como el uso de
ndices, la distribucin de consultas entre tablas y el rendimiento de las consultas
de la carga de trabajo.
Recomendar mtodos para optimizar la base de datos con respecto a un pequeo
conjunto de consultas problemticas.
Permitirle personalizar la recomendacin mediante la especificacin de opciones
avanzadas como, por ejemplo, las restricciones de espacio en disco.

LIMITANTES
El asistente nos limita, En qu?
No puede agregar o quitar ndices nicos o ndices que aplican restricciones
PRIMARY KEY o UNIQUE.
No puede analizar una base de datos que est configurada en modo de usuario
nico.
Si especifica un espacio en disco mximo en las recomendaciones de optimizacin
que supere el espacio disponible real, el Asistente para la optimizacin de motor de
base de datos usa el valor especificado. Sin embargo, al ejecutar el script de
recomendaciones para implementarlo, el script puede generar un error si antes no se
agrega ms espacio en disco. El espacio en disco mximo puede especificarse
mediante la opcin -B de la utilidad dta o especificando un valor en el cuadro de
dilogo Opciones avanzadas de optimizacin.
Por motivos de seguridad, el Asistente para la optimizacin de motor de base de
datos no puede optimizar una carga de trabajo de una tabla de seguimiento que
resida en un servidor remoto. Para evitar esta limitacin, puede usar un archivo de
seguimiento en lugar de una tabla de seguimiento o copiar la tabla de seguimiento
en el servidor remoto.
Al imponer restricciones, como las impuestas al especificar el espacio en disco
mximo en las recomendaciones de optimizacin (mediante la opcin -B o el cuadro
de dilogo Opciones avanzadas de optimizacin), el Asistente para la optimizacin
de motor de base de datos puede verse forzado a quitar algunos ndices existentes.
En ese caso, la recomendacin resultante del Asistente para la optimizacin de
motor de base de datos puede producir lo contrario a la mejora esperada.
Al especificar una restriccin para limitar el tiempo de optimizacin (mediante la
opcin -A con la utilidad dta o activando Limitar tiempo de optimizacin en la
pestaa Opciones de optimizacin), el Asistente para la optimizacin de motor de
base de datos puede exceder ese lmite de tiempo para generar la mejora esperada
exacta e informes de anlisis de la parte de la carga de trabajo que se ha consumido
hasta ahora.

CACHEAR LAS CONSULTAS MAS FRECUENTES


Activar la cach de base de datos del SGBD a veces puede empeorar el
rendimiento. Esto depende del volumen de datos al que se acceda ms frecuentemente.
Si el volumen de datos es alto y se actualiza frecuentemente, estaremos siempre
escribiendo en la cach en lugar de leer de ella. As que normalmente es preferible
recurrir a un sistema de cach externo, en el cual podamos controlar que se van a
cachear realmente los datos ms frecuentes y ms frescos. Si el sistema de cach no nos
provee de esta funcionalidad, podemos implementarla nosotros. Una buena forma de
hacerlo sin el sobrecoste de almacenar el nmero de veces que se accede a una consulta,
es generar un nmero aleatorio y cachear la consulta si ese nmero pasa de cierto valor.
Por ejemplo, supongamos que generamos un nmero aleatorio entre 1 y 100 y la
consulta se cachea si dicho nmero es menor que 10, de esta forma se guardar la
consulta en cach con una probabilidad del 10% en cada peticin, as si la consulta tiene
ms peticiones, ser ms probable que se guarde en cach.

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