Академический Документы
Профессиональный Документы
Культура Документы
OBJETIVO GENERAL
Definir cada uno de los índices para el uso de herramientas que optimicen la estructura de
la base de datos conforme a las consultas realizadas, esto con el fin de mejorar el
rendimiento del sistema garantizar la integridad de los datos.
OBJETIVO ESPECIFICO
Este tipo de optimización depende de dos factores complejos, uno del tipo de consultas que
se van a realizar y otro de la carga de trabajo que soporte el servidor en factores variables
de tiempo, dependiendo del sistema manejador de base de datos con el que se cuente, se
deben tener en cuenta aspectos básicos sobre reescribir consultas, código para ejecutar las
mismas, crear cada uno de los índices necesarios para el acceso al Asistente de datos, vistas
materializadas, particiones horizontales y verticales, replicas en el sistema, tablas de apoyo
a las consultas, optimizando el esquema funcional de la base de datos lógico del modelo
organizacional, de acuerdo a los parámetros de configuración y por ultimo tener un
adecuado manejo del uso externo del cache sobre los datos con mayor sensibilidad en el
sistema.
Para realizar una optimización en el sistema manejador de base de datos SQL Server 2008
R2 se utiliza la herramienta GUI (interfaz gráfica de usuario) del Asistente, el cual permite
optimizar tablas o archivos de carga de trabajo como entrada, el cual permite con facilidad
ver los resultados de la sesión actual como de sesiones anteriores. Para lo cual es necesario
tener en cuenta los siguientes ítems:
Para buscar una tabla o archivo de carga de trabajo en el sistema manejador de base de
datos SQL Server, se comienza dando clic en el botón Examinar, para lo cual el Asistente
presume que los archivos de carga son de sustitución incremental, al usar una tabla de traza
como una carga de trabajo, esa tabla debe existir en el mismo servidor que el Asistente.
Teniendo en cuenta los siguientes aspectos:
Se deben seleccionar las tablas en las que se desea ejecutar la carga de trabajo las
cuales deben existir en la base de datos, para seleccionar las tablas se debe hacer
clic en la flecha “Tablas Seleccionadas”
Seleccionamos guardar registro de optimización para guardar una copia de respaldo
del registro que se requiere cargar, es necesario desactivar la casilla de verificación,
después de realizar el análisis, el cual se podrá detener en el momento que se desee
deteniendo la sesión desde el Asistente, el cual generara recomendaciones
realizadas hasta el punto de optimización que se generó en el sistema, si no se
interrumpe el proceso se podrá visualizar el registro de carga para lo cual se inicia
sesión seleccionando la ficha “Progreso”
Haga clic en la ficha Opciones de optimización y seleccione las opciones que
figuran en la lista.
OPTIMIZACION DE CONSULTAS
Cambiar los OR por IN, cuando tenemos más de un valor para comparar
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
Especificar siempre los nombres de las columnas en las SELECT
realizar uno o varios JOIN adicionales, en la consulta para obtener el listado por
cada ítem
Crear índices: los índices permiten un acceso a los datos no secuencial mucho más
rápido
OPTIMIZACION DE PAGINACION
La paginación suele ser una tarea costosa cuando tenemos que mostrar varios números de
página, porque para eso se tiene que calcular el número de filas en la relación, lo que puede
requerir una lectura completa de la misma, dependiendo del SGBD. Siempre será más
eficiente mostrar enlaces de anterior y siguiente, recuperando todas las filas a mostrar y una
más, de manera que se muestra el enlace de siguiente página, si nos llega esta fila adicional
desde la BD. Alternativamente, podemos mantener en una relación independiente el
número de filas.
Otra cosa que puede afectar a las paginaciones, es que cuando estamos en una página
interior se deben descartar un cierto número de filas, pertenecientes a las páginas anteriores,
y que son leídas del disco con todas las columnas que aparezcan en la consulta. Una forma
de evitar esto es realizar un JOIN con una sub-consulta que recupere los identificadores que
necesitamos antes de leer toda la información. Ejemplo:
SELECT dato1, dato2, dato3 FROM Foo INNER JOIN (SELECT id FROM Foo ORDER
BY dato1 LIMIT 50, 10) AS FooPaginado USING (id)
https://es.wikipedia.org/wiki/Optimizaci%C3%B3n_de_consultas
https://www.humanlevel.com/articulos/desarrollo-web/optimizacion-de-base-de-datos.html