Buenas prácticas para la optimización de base de datos relacionales usando Microsoft SQLResumen.- El principal problema al consultar una base de datos es el tiempo de respuesta. La investigación fue de tipoaplicada, utilizó dos bases de datos: control y experimental. Se han utilizado tres computadoras para la ejecución dediez consultas a las dos bases de datos, ejecutándose 4 veces consecutivas y obteniendo un promedio. Los resultadosencontrados fueron que, de las diez consultas realizadas, siete obtuvieron mejores resultados en la BD experimental ytres en la BD control. Se concluye que las buenas prácticas para optimizar una base de datos son: crear índicesagrupados en columnas usadas frecuentemente para realizar búsqueda u ordenamientos, crear índices no agrupadosen columnas usadas para comparaciones que no tengan índices agrupados, utilizar columnas calculadas, operadores ylistado de columnas adecuadas en las consultas, sin embargo, la utilización de índices debe restringirse porque afectana las operaciones de inserción, actualización y eliminación. Palabras clave: base de datos relacionales, optimización de base de datos, SQL, indexaciónMaquen et al. Buenas prácticas para la optimización de base de datos relacionales usando Microsoft SQLGisella Luisa Elena Maquen Niñohttps://orcid.org/0000-0002-9224-5456gluisamn@unprg.edu.peUniversidad Nacional Pedro Ruiz GalloLambayeque, Perú Franklin Edinson Terán Santa Cruzhttps://orcid.org/0000-0002-3197-7979fteran@unprg.edu.peUniversidad Nacional Pedro Ruiz GalloLambayeque, Perú Consuelo Ivonne del Castillo Castrohttps://orcid.org/0000-0002-1512-006X cdelcastilloc@unprg.edu.peUniversidad Nacional Pedro Ruiz GalloLambayeque, PerúRafael Damián Villón Prietohttps://orcid.org/0000-0002-5248-4858 villonpr@ucvvirtual.edu.peUniversidad Cesar VallejoLambayeque, Perú.Abstract.- The main problem when querying a database is the response time. The research was of an applied type,using two databases: control and experimental. Three computers have been used to execute ten queries to the twodatabases, running 4 consecutive times and obtaining an average. The results found were that, of the ten consultationscarried out, seven consultations obtained better results in the experimental DB and three in the control DB. It isconcluded that the best practices to optimize a database are: create clustered indexes on columns frequently used insearches or to perform sorts, create non-clustered indexes on primary or foreign keys that do not have clusteredindexes, use calculated columns, operators and listing of proper columns in queries, however, the use of indexes shouldbe restricted because they affect insert, update, and delete operations.Keywords: relational database, database optimization, SQL, indexingBest Practices for Relational Database Optimization using Microsoft SQL 29Recibido (27/02/2022), Aceptado (07/04/2022) https://doi.org/10.47460/uct.v26i114.588
I. IntroducciónLas Bases de Datos se han convertido en un elemento primordial en el ámbito empresarial, ya que almacenan lainformación relacionada con el proceso básico de la organización, y para poder cumplir correctamente su función sedeben asegurar ciertas características como son: la escalabilidad, seguridad de la información y tener un buenrendimiento [1].Se puede medir el rendimiento de una base de datos en términos de tiempo, haciendo referencia al tiempo que tomaal servidor de base de datos responder una solicitud o requerimiento de información solicitada por un cliente [2]. En talsentido, es crucial para la empresa que el tiempo de respuesta a los datos que se requieren de la base de datos sea elmínimo posible para que puedan atender solicitudes en menor tiempo lo que se traduce en mayor cantidad de clientesatendidos, y que tiene un impacto directo en la economía de la empresa.El diseño de la base de datos obedece esencialmente a que se debe asegurar el almacenamiento y recuperación detodos los datos que la empresa requiere para la automatización eficiente del proceso elegido [3].Existen cuatro operaciones que debe realizar el servidor de base de datos: registro, actualización, eliminación yconsulta de datos; siendo la última operación la más utilizada [4]. La operación de consulta de datos es potencialmentemás utilizada en aquellos sistemas informáticos que trabajan con datos confidenciales, como son sistemas paraentidades financieras, sistemas para el área de salud y sistemas para identificación de personas que manejan miles detransacciones de datos al día” [5].de consultas SQL es rápido, pero cuando la base de datos lleva un tiempo funcionando y la cantidad de registrosalmacenados es bastante grande, llegando a tener en una tabla hasta millones de registros, el tiempo de acceso esbastante lento lo que hace que el sistema informático tarde varios segundos en conseguir el dato requerido. Lascompañías tienen como requerimiento esencial para los servidores de bases de datos relacionales la obtención denuevos datos en milisegundos; requerimiento que muchas veces no se alcanza por limitaciones de hardware o laescasa preparación del personal responsable del servidor.Es en este punto, donde juega una vital importancia utilizar técnicas de optimización de base de datos que permitanagilizar las consultas de datos. La optimización de base de datos puede ser abordada de dos diferentes maneras:basada en el diseño físico y basada en parámetros de configuración [5]. La primera alude a la forma en cómo se realizael diseño de la base de datos encontrando en la selección eficiente de índices un indicador de optimización, la segundabusca elegir los parámetros de configuración apropiados como son la asignación de memoria y la administración deprocesamiento [5]. También es importante abordar la optimización de consultas que permitan ahorrar costos deprocesamiento [6]. De esta manera es necesario diseñar consultas SQL que devuelvan datos específicos y que realicenla menor cantidad de operaciones para que puedan tener un tiempo de respuesta menor. Se debe tener en cuentaque las consultas escritas de forma deficiente, degradan el rendimiento de la base de datos, por ello, actualmente seaplican algoritmos de búsqueda aleatoria como el algoritmo de colonia de hormigas y el algoritmo de enjambre departículas que han permitido obtener resultados favorables para ciertos contextos específicos como es el problema dela optimización de consultas de base de datos para sistemas integrados y sistema de búsquedas de palabras clave [7][8].El proyecto de investigación tiene como objetivo determinar buenas prácticas para la Optimización de Base de Datosutilizando Microsoft SQL Server, planteándose como hipótesis que, si se ejecutan estas buenas prácticas, los tiemposde respuestas de las consultas realizadas a la base de datos serán menores. 30Maquen et al. Buenas prácticas para la optimización de base de datos relacionales usando Microsoft SQL
II. DesarrolloSe han abordado técnicas y recomendaciones relacionadas a la creación de base de datos y a las sentencias deconsulta SQL que permitirán mejorar el tiempo de respuesta de la base de datos.A. Buenas prácticas propuestas para la optimización de Base de datos:Índices en la creación de tablasLos índices asignados que se pueden crear en una tabla pueden ser de dos tipos: agrupados (clustered) y noagrupados (nonclustered) que permitan reducir tiempos de espera al momento de realizar una consulta. [9]. Se debetener en cuenta que Microsoft SQL Server permite tener solo un índice agrupado por tabla, por tanto, los demásíndices que se creen deberán ser de tipo no agrupados. Cuando se crea una clave primaria en una tabla, por defectoSQL Server crea un índice agrupado [10]. Sin embargo, cuando creamos claves foráneas, por defecto SQL Server nocrea ningún índice. Si se analiza el contexto, las claves primarias no necesariamente son aquellas que se utilizan en los ordenamientos delas búsquedas, como por ejemplo en el caso de la tabla Cliente, no se busca por su código sino por Apellidos yNombres, siendo en estos casos más útil crear un índice agrupado compuesto por apellidos y nombres. En resumen, elíndice agrupado se debe de crear en las columnas de aquellas tablas que son frecuentemente utilizadas en lasconsultas de búsqueda, en ordenamientos y, en último caso, utilizadas en comparaciones continuas.Con respecto a los índices no agrupados, aunque también ayudan a disminuir tiempos de respuestas, son menoseficientes, y teniendo en cuenta que una tabla solo puede tener un índice agrupado, se deben crear índices noagrupados en las columnas que se utilizan para realizar comparaciones, como por ejemplo en claves primarias y clavesforáneas si previamente no se les ha generado un índice agrupado.Por otro lado, es importante no abusar de la creación de índices porque afectan negativamente las operaciones deinserción, actualización y eliminación e incrementa el tamaño de base de datos y por lo tanto de la copia de seguridad[11], sin embargo, mejoran el tiempo de respuesta de las consultas con reuniones y agilizan las comparaciones. Columnas calculadasLas columnas calculadas vienen a ser un campo dentro de una tabla que guardan resultados de operacionesmatemáticas (precálculos) con otros campos [12], lo que beneficia el rendimiento ya que evita realizar operaciones paraobtener dichos valores.La utilización de columnas calculadas acorta los tiempos de respuesta de las consultas, aunque afecta negativamentelas operaciones de inserción y actualización de los datos involucrados debido al cálculo necesario para mantener lacoherencia de los datos.Operadores adecuados y listado de columnas en consultas realizadasEs importante elegir cuidadosamente los operadores que se utilizan en las consultas porque dependiendo de laestructura de la base de datos y en especial de sus índices los tiempos de respuesta pueden variar considerablemente. Es necesario, según sea el caso, elegir el operador adecuado cuando existen operador que realizan funciones similarescomo es el caso del operador EXISTS/NOT EXISTS y el operador IN/NOT IN. En las cláusulas GROUP BY y ORDER BY deser posible se debe utilizar columnas y no operaciones para permitir al optimizador de consultas del servidor de basede datos elegir los índices apropiados en beneficio de un mejor rendimiento. Así mismo, evitar utilizar el operador * 31Maquen et al. Buenas prácticas para la optimización de base de datos relacionales usando Microsoft SQL
Ícuando se realiza la sentencia SELECT y de preferencia listar campos específicos que se desean; aunque esto pareceser algo obvio es una mala práctica muy difundida en los programadores.B. Antecedentes de la InvestigaciónLa optimización de bases de datos es en la actualidad una necesidad imperativa para las empresas; la cuales utilizandiferentes enfoques para obtener tiempos mínimos en la ejecución de órdenes SQL. Aunque al inicio de lasoperaciones esta necesidad pasa desapercibida e incluso abordada de forma descuidada por los responsables deldiseño e implementación de las bases de datos; con el correr del tiempo y con el crecimiento de los datosalmacenados, se puede comprobar un incremento preocupante en los tiempos de respuesta [13].Hoy en día a nivel de hardware, los servidores son muy avanzados teniendo como prioridad su capacidad deprocesamiento, enfatizando en cada uno de los aspectos relacionados: velocidad y cantidad de procesadores, velocidady cantidad de RAM así como velocidad de acceso a las unidades de almacenamiento entre otros. Incluso se dispone deherramientas como RAID de discos duros o arquitecturas complejas para implementar servidores distribuidos paraobtener mejor rendimiento. De tal manera que al mejorar la capacidad de procesamiento de los servidores mejoran lostiempos de respuesta de las consultas a la base de datos.Hay un incremento de investigaciones en entornos distribuidos para la optimización de base de datos. En entornos demúltiples procesadores se aplican la optimización de consultas paralelas en el servidor OLAP (aplicación de soporte dedecisiones) para encontrar un plan paralelo que entregue el resultado de la consulta en un tiempo mínimo [14].En la optimización de consultas se están tendiendo a usar algoritmos probabilísticos para mejorar la velocidad en laobtención de resultados. Un algoritmo usado es el SDD-1 y junto con el método Semi- JOIN permite un incremento enla velocidad de la consulta de hasta un 300% [4]. Otro algoritmo usado es el algoritmo de Ascensión de colina que juntocon una adecuada indexación y métodos de optimización de consultas en subprocesos múltiples se reduce el tiempode consulta en 45% en comparación con otros métodos tradicionales [15].Las empresas propietarias de los sistemas gestores de bases de datos relacionales para afrontar la lentitud de susoperaciones proporcionan una herramienta dedicada a generar tiempos de respuestas mínimos llamada Motor deOptimización de Consultas. Este motor utiliza como insumos la metadata de las tablas (índices, tipos de índices creados,columnas clave de los índices, archivos y ubicación de los mismos) así como de las estadísticas almacenadas de cadauna de ellas para elegir la ruta de ejecución más eficiente, la cual se denomina Plan de Ejecución [16].Las soluciones basadas en hardware permiten aumentar la capacidad de procesamiento, pero involucran un alto costeen la compra de equipos apropiados y contratar personal altamente capacitado en nuevas técnicas de ejecución deconsultas a la base de datos.Sin embargo, una solución con menor costo sería la optimización de consultas a la base de datos. Los optimizadores deconsultas utilizan las características del Álgebra Relacional para reordenar los operadores (selección, proyección, unión,reuniones, entre otros) con el objetivo de disminuir la cantidad de datos involucrados en la implementación de lasoperaciones solicitadas; en especial la solicitud de datos (operación más utilizada por los sistemas). Disminuir lacantidad de datos es importante porque reduce los accesos a la base de datos y necesita menor velocidad detrasmisión de datos.32Maquen et al. Buenas prácticas para la optimización de base de datos relacionales usando Microsoft SQL
Existe en el mercado software licenciado que permite optimizar base de datos; como son SQL Developer que analiza elrendimiento de una sentencia SQL para mostrar un plan de ejecución con información estimada y real [17]. TOAD esotra herramienta que sirve para analizar el rendimiento de una consulta que se base en el plan de ejecución paratrabajar parámetros sin estimación que luego serán visualizados por el usuario. [17].A través del uso de herramientas informáticas para optimizar base de datos podemos obtener un plan de ejecuciónque conllevaría a una reducción en el tiempo de la consulta; sin embargo, hace uso intensivo del CPU por lo que si nose cuenta con hardware adecuado puede conllevar a un incremento del tiempo transcurrido; por lo que el usopermanente de estas herramientas en servidores de producción no es recomendado.Otra opción para mejorar los tiempos de respuesta es utilizar la técnica de optimización basada en costo consistenteen utilizar las estadísticas de los datos almacenados en las tablas o índices creados [18]. Ambos métodos puedencombinarse para generar mejores resultados.Aunque los motores de optimización estén implementados con los mejores algoritmos finalmente son dependientes delas personas que diseñan las bases de datos y las que diseñan las consultas. Es importante por lo tanto utilizar buenasprácticas para el diseño físico de base de datos, así como la correcta utilización de los operadores de una consultaexplotando de esta manera las características propias de cada servidor [19].III. METODOLOGÍACon el objetivo de mostrar las mejoras en el rendimiento de las operaciones de consulta se han creado dos bases dedatos de ventas; una que actuará como base de datos experimental a quien se le aplicarán las técnicas de optimizaciónde base de datos y otra que actuará como base de datos control. La data utilizada para realizar el llenado de las basesde datos es simulada y se ha generado mediante script. Ambas bases de datos tienen la misma estructura, contienendoce tablas que se indican a continuación: 33Tabla 1. Tablas de la Base de Datos de VentaNota: Cantidad de filas (registros) de cada tabla de la base de datos de Venta, las tablas que tienen millones de registros fueron insertados por medio de scriptMaquen et al. Buenas prácticas para la optimización de base de datos relacionales usando Microsoft SQL
Con el objetivo de obtener diferentes mediciones de las consultas, éstas se ejecutaron en computadores con diferentesconfiguraciones, las cuales se detallan a continuación: Equipo 01, Tipo: Laptop, Procesador: Core i5 6200U 2.30 GHz, RAM: 8GB, Disco duro: 1TB 5400 rpm, Sistema operativo:Windows 10 Pro x64. Equipo 02, Tipo: Laptop, Procesador: Core i5 2.20 GHz, RAM: 6GB, Disco duro: 1TB 5400 rpm, Sistema operativo:Windows 8.1 Pro.Equipo 03, Tipo: Desktop, Procesador: Core i5 2320 3.30 GHz, RAM: 8GB, Disco duro: 1TB 5400 rpm, Sistema Operativo:Windows 10 Enterprise x64.En las tres computadoras se han creado las dos bases de datos: base de datos con valores de configuración pordefecto, y la base de datos optimizada con buenas prácticas.Luego se diseñaron 10 consultas que permitieran acceder a las tablas que tenían mayor cantidad de registros, lascuales se detallan a continuación:Listado de los clientes morosos•Listado de los modelos de productos más vendidos durante el año 2016•Listado de los 10 trabajadores que más han vendido en el último trimestre del año 2016•Estado de cuenta de un cliente•Listado de los modelos de productos que no se han vendido durante el año 2017•Listado de ingresos por trabajador en el año 2015Indicar los clientes que deben pagar detallando el monto para un mes y año determinado•Listado de los trabajadores y el número de documentos anulados por mes para el año 2016.•Cuáles son los trabajadores que no han realizado ventas en el primer trimestre del año 2017.•Evolución de ingresos por medio en los años 2011 hasta el 2016Estas consultas fueron ejecutadas con la finalidad de medir el tiempo de respuesta de la base de datos por defecto (BDcontrol) y base de datos optimizada (BD experimental) y posteriormente poder compararlos.En cada computadora se han ejecutado estas diez consultas a cada base de datos: experimental y control, realizándosela ejecución 4 veces simultáneas y obteniendo un promedio de estas ejecuciones simultáneas por computadora.Posteriormente se han promediado los resultados de las tres computadoras, obteniéndose un solo valor (promedio)por cada consulta. IV. ResultadosPara poder corroborar la optimización de una base de datos, se han aplicado buenas prácticas solo a la Base de Datosoptimizada (experimental), que se detallan a continuación:Índices en la creación de tablasEn la base de datos optimizada (base de datos experimental) se han creado índices agrupados en las claves foráneasde las tablas: Cuota, CuotaPago, Pago, DetalleVenta y Modelo.También se ha creado índices agrupados en columnas que son frecuentemente buscadas pero que no son clavesforáneas ni claves primarias, en las tablas de: Categoría, Cliente, Producto, Trabajador. En la tabla Categoría se ha 34Maquen et al. Buenas prácticas para la optimización de base de datos relacionales usando Microsoft SQL
colocado índice agrupado a la columna nombre, en la tabla Cliente un índice compuesto por apellidos y nombres (enese orden), en la tabla Producto a la columna nombre y en la tabla Trabajador a la columna compuesta por apellidos ynombres.Por último, se ha creado índice agrupado a la clave primaria de la columna código en la tabla Venta, porque cuando sequiere realizar una búsqueda de un pago o de las cuotas de un pago, el criterio de búsqueda principal es el código deventa, siendo un caso excepcional que obedece a que se debe declarar como índice agrupado aquellas columnas quese usen frecuentemente en la búsqueda y ordenamiento de datos.Con respecto, a los índices no agrupados, se han asignado a las claves primarias de las siguientes tablas: Categoría,Cliente, Cuota, CuotaPago, DetalleVenta, Modelo, Pago, Producto, Trabajador. Adicionalmente se han creado más de uníndice no agrupado en una misma tabla en: DetalleVenta, Modelo, Pago, Producto y Venta.La tabla Venta por tener campos que se consultan frecuentemente, tiene una configuración diferente a las demástablas, asignándosele índice agrupado a la clave primaria (código) y asignándose dos índices no agrupados a las clavesforáneas (Codigo de Cliente y Codigo de Trabajador). Columnas calculadasSe ha creado una columna denominada Total en la tabla Venta. Esta columna contiene el pago total del documento deventa; es decir la sumatoria de la multiplicación del precio de venta y la cantidad vendida de cada producto.Operadores adecuados y listado de columnas en consultas realizadasCon el objetivo de mejorar el rendimiento de las consultas a la base de datos se ha utilizado el operador EXISTS/NOTEXISTS en vez del operador IN/NOT IN. En la cláusula ORDER BY se ha optado por utilizar columnas en lugar deoperaciones (concatenaciones). Este cambio favorece la utilización de los índices. En la cláusula SELECT se ha listado lascolumnas de una determinada tabla en reemplazo del operador *. Posteriormente se han medido los tiempos de respuesta de la ejecución de cada una de las diez consultas a la BDcontrol y a la BD experimental, conforme se ha detallado en la metodología.Para poder hacer las comparaciones respectivas se ha creado una tabla donde se agrupan las consultas en: Categoría 1(Consultas con mejores tiempos en BD Optimizada) y Categoría 2 (Consultas con mejores tiempos en BD por defecto).35Tabla 2. Promedios de tiempos de ejecución en milisegundos de las diez consultas agrupados en dos categorías, en la BD con configuración por defecto (control) y la BD optimizada (experimental)Nota: En la Categoría I se ubican las consultas que tuvieron menor tiempo de respuesta en la base de datos experimental y en la categoría II se ubican las consultas que tuvieron mejor tiempo de respuesta en la base de datos control.Maquen et al. Buenas prácticas para la optimización de base de datos relacionales usando Microsoft SQL
En la tabla anterior se puede apreciar que en la Categoría II, se ha obtenido una situación desfavorable para lainvestigación ya que la base de datos con configuración por defecto es la que ha obtenido mejor promedio que laversión optimizada y esto se debe a qué en las consultas de la Categoría II (consultas 03, 07 y 08) se realizaprocesamiento previo en las columnas de tipo fecha, por ejemplo, obtener el trimestre en un año específico, y lascolumnas de fechas no contienen ningún índice.Posteriormente, se realizó el cálculo de las medidas de dispersión (x), la desviación estándar (s) y del coeficiente devariación (CV) de las dos bases en cada una de las categorías.Tabla 3. Medidas de dispersión de tiempos de ejecución de las diez consultas agrupados en dos categorías, en la BDcon configuración por defecto (control) y la BD optimizada (experimental)36Nota: Medidas estadísticas promedio, desviación estándar y coeficiente de variación de los tiempos obtenidos en la base de datos control y en la experimental. El coeficiente de variación es menor en la base de datos optimizada que en la base de datos con configuración pordefecto, en tal sentido podemos establecer que los tiempos de ejecución en la base de datos optimizada tuvieronvalores más homogéneos que los de la base de datos con la configuración por defecto.ConclusionesLa creación de la base de datos debe implicar no sólo la satisfacción de los requerimientos funcionales que daránsoporte al sistema sino también la utilización de buenas prácticas que permitan afrontar los desafíos de tiempo derespuesta cuando la base de datos crezca y llegue a tener millones de registros. Se llega a la conclusión que las buenas prácticas para optimizar una base de datos basados en software se centran en:crear índices agrupados en columnas que se utilicen con mayor frecuencia para realizar ordenamientos, búsquedas omuchas comparaciones; crear índices no agrupados en columnas que se utilicen para hacer comparaciones y que nose les haya asignado anteriormente índices agrupados, en tal sentido; en tablas que tengan claves foráneas a las quealguna de ellas se les ha asignado índice agrupado, la clave primaria será asignada como índice no agrupado; en la tablaque tenga claves foráneas pero que alguna otra columna haya sido asignado como índice agrupado, tanto clave foráneacomo clave primaria serán índices no agrupados; en las tablas que no tengan clave foránea la clave primaria seráasignada como índice agrupado; utilizar columnas calculadas que tengan registros resultantes de operaciones de otroscampos y que son frecuentemente buscados y utilizar operadores y listado de columnas adecuadas en una consulta,todo ello, ayuda a disminuir los tiempos de respuestas de las consultas, sin embargo, también se debe hacer usorestringido de la creación de índices porque afectan a las operaciones de inserción, actualización y eliminación en labase de datos, ya que de las 10 consultas ejecutadas tanto, en la base de datos experimental optimizada con lasbuenas prácticas antes mencionadas, como en la base de datos con configuración por defecto, se obtuvo que siete Maquen et al. Buenas prácticas para la optimización de base de datos relacionales usando Microsoft SQL
consultas demostraron resultados favorables en cuanto a menor tiempo de respuesta y tres consultas mostraronresultados desfavorables porque obtuvieron mayor tiempo de respuesta, esto se puede atribuir a que las consultasque obtuvieron resultados desfavorables realizan procesamiento previo en las columnas, por ejemplo un trimestre enun año específico, y las columnas de fechas no contienen ningún índice. Por último, se debe realizar uso restringido enla creación de índices tanto agrupados como no agrupados, ya que afectan el rendimiento de las operaciones deinserción, actualización y eliminación dentro de una tabla de la base de datos. AgradecimientosEl presente proyecto fue realizado con el apoyo del Bach. Walter Ventura Chozo, Responsable del Laboratorio deCómputo de la Escuela Profesional de Ingeniería en Computación e Informática; quién nos facilitó el acceso a loslaboratorios para ejecutar las pruebas diseñadas a las bases de datos utilizadas.LimitacionesSe ha realizado la ejecución de consultas en tres computadoras con diferentes características lo cual puede sesgar elresultado final, atenuando este sesgo con la ejecución consecutiva de hasta en 04 (cuatro) oportunidades, obteniendoun promedio de los tiempos de respuesta por cada consulta.Referencias[1] C. M. Ricardo, Bases de datos, Segunda ed., Mexico: McGraw-Hill, 2009. [2] R. Elmasri y S. B. Navathe, Sistemas de Bases de Datos: Conceptos Fundamentales, Segunda ed., España: Addison-Wesley Iberoamericana, 1997. [3]Microsoft, "SQL Server Database Engine," 2012. [Online]. Available: https://msdn.microsoft.com/es-es/library/ms187875(v=sql.110).aspx. [Accessed Agosto 2015].[4] A. Zulfikar, H. Spits Warnas, F. Gaol, E. Abdurachman y B. Soewito, «La optimización de consultas para bases de datosdistribuidas utiliza un enfoque basado en semiuniones (SBA) con el algoritmo SDD-1,» Conferencia internacional sobreinformación de 2019 and Communications Technology (ICOIACT), pp. 619-623, 2019. [5] A. Samson y A. Aponso, «An Analysis on Automatic Performance Optimization in Database Management Systems,»2020 World Conference on Computing and Communication Technologies (WCCCT), pp. 6-9, 2020. [6] J. Murlewski, T. Kowalski, R. Adamus, B. Sakowicz y A. Napieralski, «Optimización de consultas en bases de datos decuadrícula,» 14th International Conference on Mixed Design of Integrated Circuits and Systems, pp. 707-710, 2007. [7] J. Xu, «Análisis de optimización dinámica de los resultados de consultas de palabras clave en bases de datosrelacionales basadas en el algoritmo de optimización de colonias de hormigas,» Conferencia internacional sobretecnología informática, electrónica y comunicación (ICCTEC), pp. 721-724, 2017. [8] X. Mingyao y l. Xiongfei, «Algoritmo de optimización de consultas de bases de datos integradas basado enoptimización de enjambre de partículas,» Séptima Conferencia internacional sobre tecnología de medición yautomatización mecatrónica, pp. 429-432, 2015. [9] J. L. Jorden y D. Weyn, MCTS Microsoft SQL Server 2005 Implementation and Maintenance Study Guide, EEUU: WileyPublishing, 2006. [10] P. De Betta, Introducing SQL Server 2008, EEUU: Microsoft Press, 2008. [11] R. Mistry y S. Misner, Introducing Microsoft SQL Server 2012, EEUU: Microsoft Press, 2012. [12] O. Thomas y I. McLean, Training Kit Optimización y Mantenimiento de una Solución de Administración de Base deDatos Microsoft SQL Server 2005, Madrid: Anaya Multimedia, 2006. [13] M. G. Varas Beltrán, «Creación de un modelo de optimización para los Query utilizando la sentencia SELECT deSQL,» Quevedo, 2014.[14] S. Deepak, S. Kumar, M. Durgesh y PBK, «Procesamiento de consultas y optimización del sistema de bases de datosparalelas en entornos de múltiples procesadores,» Sexto Simposio de Modelado de Asia de 2012, pp. 191-194, 2012. 37Maquen et al. Buenas prácticas para la optimización de base de datos relacionales usando Microsoft SQL
[15] X. Sun, B. Jiang y X. He, «Optimización de consulta de base de datos basada en generación de energía fotovoltaicadistribuida,» 2nd IEEE Advanced Information Management, Communications, Electronic and Automation ControlConference (IMCEC), pp. 2382-2386, 2018. [16] J. Ruiz Rangel, «Procesamiento y optimización de consultas,» Journal of Engineering and Technology, vol. 3, 2, pp.36-43, 2014. [17] R. García Frutos, «Optimización de consultas en bases de datos relacionales,» Madrid, 2016.[18] E. Ramas Ferrández, «Optimización de consultas a bases de datos relacionales,» Zaragoza, 2017.[19] P. Quiñonez Villa, «Implementacion de una base de datos SQL Server,» 2013. [En línea]. Available:http://es.slideshare.net/paulquinonez3/implementacion-de-una-base-de-datos. [Último acceso: Agosto 2016].38Los AutoresGisella Luisa Elena Maquen NiñoDoctora en Ciencias de la Educación con mención en Administración de la Educación.Estudios de doctorado en Ciencias de la Computación y Sistemas, Universidad Señor deSipán. Ingeniero en Computación e Informática, Universidad Pedro Ruiz Gallo. Filiación:Universidad Pedro Ruiz Gallo Perú. E-mail: gmaquenn@unprg.du.pe, ORCID:https://orcid.org/0000-0002-9224-5456 .Franklin Edinson Terán Santa CruzMaestro en Ingeniería de Sistemas con mención en Gerencia de tecnologías de lainformación y gestión del software. Ingeniero en Computación e Informática,Universidad Nacional Pedro Ruiz Gallo de Lambayeque Perú. Filiación: UniversidadNacional Pedro Ruiz Gallo de Lambayeque Perú. E-mail: fteran@unprg.edu.pe , ORCID:https://orcid.org/0000-0002-3197-7979. Consuelo Ivonne Del Castillo CastroDoctora en Educación, Magister en Ingeniería de Sistemas con mención en Gerencia deTecnologías de la Información, Ingeniera en Computación e Informática. MicrosoftCertified Professional. Docente adscrito al Departamento Académico de Computación yElectrónica de la Universidad Nacional Pedro Ruiz Gallo de Lambayeque - Perú.. E-mail:cdelcastilloc@unprg.edu.pe, ORCID: https://orcid.org/0000-0002-1512-006X Rafael Damián Villón PrietoIngeniero de Sistemas, Licenciada en Educación Secundaria: Matemática, Computación EInformática, Maestro en Gestión Pública, Doctor en Gestión Pública y Gobernabilidad.Docente contratado en la Universidad Cesar Vallejo SAC en la escuela de Posgrado deLambayeque Perú. E-mail: villonpr@ucvvirtual.edu.pe, ORCID: https://orcid.org/0000-0002-5248-4858 Maquen et al. Buenas prácticas para la optimización de base de datos relacionales usando Microsoft SQL