elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Acceso exclusivo a BBDD
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Acceso exclusivo a BBDD  (Leído 2,028 veces)
Ikku

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Acceso exclusivo a BBDD
« en: 11 Abril 2012, 12:31 pm »

Hola,

Recientemente en mi trabajo están teniendo problemas a la hora de acceder a una base de datos, según ven dos aplicaciones acceden al mismo tiempo con consultas muy pesadas y se está planteando si una puede bloquear a la otra.

La duda que me surge es, se supone que cada aplicación genera una transacción no? y cuando acabe esta se incluye en la base de datos. Si yo la aplicación A hace una transacción de 9000 updates y la segunda también hace 5000 updates sobre los mismos elementos de esa tabla. Tiene que esperar a que termine la primera transacción para que se pueda incluir la segunda?

En ese caso, la transacción queda incluida en la BBDD y el programa sigue su ejecución sin esperar o tiene que esperar confirmación de que ha terminado la query para poder continuar?

Gracias
Un saludo


En línea

lord_Sirikon

Desconectado Desconectado

Mensajes: 151


Es sólo el silencio que precede a la tormenta.


Ver Perfil WWW
Re: Acceso exclusivo a BBDD
« Respuesta #1 en: 16 Abril 2012, 01:35 am »

Creo que...

Las transacciones son tratadas completamente de una en una cuando afectan a la misma tabla.

Por ejemplo: Hacemos desde la aplicación A una orden en la que borra una línea de la tabla, mientras que desde la aplicación B estamos ordenando de que modifique un dato en ésa línea.

Teniendo en cuenta que la base de datos primero comprueba si la operación se puede realizar y si se puede realizar la realiza...

A enviará la orden, y después de ser validada y antes de ser escrita, llega la orden de la aplicación B, la cual, como todavía no se ha borrado la línea, dará por válida y dará luz verde a ser escrita, justo después de eso la orden A elimina esa línea y posteriormente B intenta modificar esta línea, pero ya no existe por lo que daría un error grave y se petaría la base de datos.

Es por eso que las transacciones al llegar se comprueban si están bien escritas, si se pueden hacer, y después de ser realizadas y avisar al cliente de que se han realizado correctamente, no procesa la siguiente transacción.

En resumen:
1.- Sí tiene que esperar a terminar la primera transacción para incluir la segunda
2.- El programa espera la confirmación de que es query ha sido finalizada para poder procesar la siguiente

Esto que he dicho aquí podría no ser del todo cierto, espero haber ayudado en vez de haberlo liado más.

PD: Si el ordenador que lleva la base de datos en la empresa no es muy potente o no es especializado para servidores, hay que tener en cuenta que si son realmente 9000 updates de una vez pues no es algo ligero de manejar para un ordenador que no esté preparado así que las relentizaciones serían normales.

Saludos!


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Exclusivo Emulador de NES PARA MOVILES
Juegos y Consolas
olivermf1 9 16,112 Último mensaje 11 Junio 2008, 21:02 pm
por sagitario18
Un problema exclusivo para Ingenieros... « 1 2 3 »
Foro Libre
??? 26 9,534 Último mensaje 6 Mayo 2011, 20:15 pm
por Zamarronstein
Acceso BBDD desde fuera del main
Java
Baal_30 1 1,918 Último mensaje 31 Mayo 2015, 17:00 pm
por Baal_30
Servidor gratuito con XAMP para acceso a BBDD
Desarrollo Web
Baal_30 6 3,609 Último mensaje 16 Junio 2015, 21:29 pm
por Baal_30
Así de impresionante es jugar a Quake Champions, exclusivo de PC
Noticias
wolfbcn 0 1,244 Último mensaje 5 Agosto 2016, 14:54 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines