Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Instructor
Sena
Bogotá
Octubre de 2019
INTRODUCCION
La creación de una base de datos, depende de las necesidades de una organización
y de sus dependencias, es por esto que debemos de analizar las necesidades y
además 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
Optimización de consultas
Cambiar los OR por IN, cuando tenemos más de un valor para comparar.
Minimizar el coste de los JOIN: La concatenación natural o JOIN es la operación
más costosa de las bases de datos relaciones, ya que requiere realizar una
multiplicación cartesiana y una selección de valores. Algunas técnicas que podemos
usar para minimizar su efecto consisten en:
Reordenarlos para concatenar primero las relaciones con menos filas para reducir
el número de cruces.
Crear subconsultas en donde se filtren o limiten el número 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 ningún dato de la relación 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 más 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 más
rápido, pero son costosos de crear, así que no es conveniente su uso si tenemos
muchas más lecturas que escrituras. Debemos analizar el plan de ejecución de las
consultas (cada SGBD tiene su manera de verlo) para saber dónde 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.