Subido por Javier Espinoza

Angel tarea

Anuncio
Angel Rene Espinoza Quezada
5190-19-9245
Base de datos II
Introducción:
La presente investigación abarcará los temas de solución a los problemas de
concurrencia utilizando bloqueo y Optimización de consultas SQL, partiendo desde que los
tres problemas más comunes son: El problema de la Actualización Perdida. El problema de
la Dependencia No Confirmada. El problema del Análisis Inconsistente. En ciencias de la
computación, concurrencia se refiere a la habilidad de distintas partes de un programa,
algoritmo, o problema de ser ejecutado en desorden o en orden parcial, sin afectar el resultado
final. Y la optimización de búsquedas SQL cuando realizamos trabajos sobre optimización
de un entorno de base de datos en general, se suele revisar los parámetros de la base de datos,
las esperas, índices, etc. Este tipo de cuestiones es importante, pero cobra más importancia
en algunos casos, la revisión de las consultas.
Angel Rene Espinoza Quezada
5190-19-9245
Base de datos II
Solución al problema de concurrencia utilizando bloqueo
Ocurre que cuando dos o mas procesos colapsan, se le considera a la Base de Datos como
inconsistente.
El control de concurrencia es el proceso por medio del cual le damos un estado de
consistencia a cualquier Base de Datos [Mhatre, 2014].
Qasim et al, definen una transacción en un SGBD como una secuencia de operaciones de
escritura y lectura. Existen cuatro propiedades para las transacciones y se definen como
ACID, por sus siglas en inglés, (Atomicity, Consistency, Isolation and Durability),
atomicidad, consistencia, aislamiento y durabilidad [Qasim, 2016].
Existen distintos tipos de bloqueos:
Readlock: La transacción bloquea la entidad en modo colaborativo o compartido.
Cualquier otra transacción en espera de leer la misma entidad también obtiene un bloqueo de
lectura [Mandeep, 2013].
• Writelock: El bloqueo de una entidad se hace en modo exclusivo. Si alguna transacción
desea escribir en una entidad, ninguna otra puede obtener un bloqueo de lectura o escritura
[Mandeep, 2013].
Existen distintas maneras de poder abordar el tema de Control de Concurrencia en las
Bases de Datos, quizá la mas usada de estas es es el uso de multi-versiones de la BD,
combinado con estampas de tiempo; sin embargo, dependerá de las necesidades y recursos
del administrador de la BD, el enfoque que empleará para darle solución al problema.
Optimización de consultas SQL
Existen distintas cuestiones que pueden hacer variar una consulta SQL
1) Las consultas SQL se vuelven más rápidas si usa nombres de columnas reales en lugar
de "*" en la declaración SELECT.
Angel Rene Espinoza Quezada
5190-19-9245
Base de datos II
2) La cláusula HAVING se usa para filtrar filas después de seleccionar todas las filas.
Es como un filtro. No utilice los términos HAVING para ningún otro propósito.
3) A veces puede haber varias subconsultas en la consulta principal. Minimice el número
de bloques de subconsulta en la consulta.
4) Use EXISTS, IN y combinaciones de tablas en sus consultas según corresponda.
a) IN suele tener el rendimiento más lento.
b) IN verdadero cuando la mayoría de las condiciones de filtro están en la
subconsulta.
c) EXISTS es importante cuando la mayoría de las condiciones de filtro están en la
consulta principal.
5) Cuando use uniones, use EXISTS en lugar de DISTINCT, lo que significa que las
tablas tienen una relación de uno a muchos.
6) Pruebe UNION ALL en lugar de UNION.
7) Tenga cuidado al usar condiciones en la cláusula WHERE.
8) Utilice la opción DECODE para evitar escanear las mismas filas varias veces o
vincular a la misma tabla. DECODE también se puede utilizar en lugar de una
cláusula GROUP BY u ORDER BY.
Angel Rene Espinoza Quezada
5190-19-9245
Base de datos II
Conclusión
Tenemos al alcance muchos tips que podemos seguir para optimizar consultas en SQL, y
todo tiene que ver con la variedad de escenarios distintos que podemos tener, Pero dentro de
cada caso lo mejor que podemos hacer es seguir pasos muy concretos que son; medir y
conocer las formas alternas que tenemos para llegar a un resultado, Es importante siempre
invertir el mayor tiempo en optimización
, se debe concentrar en los problemas cuya
solución traiga el mayor impacto y los mejores resultados.
Referencias bibliográficas
Mhatre A, Shedge R. (2014). Comparative Study of Concurrency Control Techniques in
Distributed Databases. Fourth Int Conf Commun Syst Netw Technol. 2014:378-382.
doi:10.1109/CSNT.2014.81.
Qasim, A., Hammand S., Imran A., Sridevi T. (2016). Concurrency Control in Distributed
Database System. Int Conf Comp Commun Infor (ICCCI - 2016), Jan. 07/09.
Mandeep Kaur and Kaur, H. (2013). “Concurrency Control in Distributed Database System”.
International Journal of Advanced Researchin Computer Science and Software Engineering,
3(7), 1443-1447.
Descargar