[SQL / Oracle] Tester un cas de concurrence.

Tester un cas de concurrence. [SQL / Oracle] - SQL/NoSQL - Programmation

Marsh Posté le 04-07-2003 à 21:50:08    

Je suis en train de concevoir une petite base de données de gestion de stock. J'aimerais bien voir les effets de la conccurence.
En gos, j'ai une table stock, qui contient des produits en quantité donnée. J'ai une table commande qui représente les commandes effectuées pas les utilisateurs pour réapprovisonner le stock. Lorsqu'une commande est effectuée, j'ai un trigger qui va mettre à jour le champ "quantité commandée" de l'article en question dans la table stock.  
J'aimerais savoir ce qui va se passer si par malchance deux commandes sur un même produit sont passées en même temps. Comment réaliser et visualiser cette opération ?  :??:

Reply

Marsh Posté le 04-07-2003 à 21:50:08   

Reply

Marsh Posté le 07-07-2003 à 17:10:34    

L'éxécution d'un trigger est inaltérable et unitaire.
 
En résumé, depuis du moment où tu commences à effectuer la modification, jusqu'au moment où elle est terminée, il ne peux se produire aucune autre action sur l'ensemble des lignes traîtées par le même trigger.
 
Il en résulte le faite qu'un trigger ne peux s'éxécuter deux fois simultanément.
 
C'est d'ailleurs pour cette raison que les triggers sont extrêment déconseillés dans les grosses bases de données multi-utilisateurs, car tu as très vite fait de ralentir tout le monde.

Reply

Marsh Posté le 07-07-2003 à 17:27:38    

MagicBuzz a écrit :

L'éxécution d'un trigger est inaltérable et unitaire.
 
En résumé, depuis du moment où tu commences à effectuer la modification, jusqu'au moment où elle est terminée, il ne peux se produire aucune autre action sur l'ensemble des lignes traîtées par le même trigger.
 
Il en résulte le faite qu'un trigger ne peux s'éxécuter deux fois simultanément.
 
C'est d'ailleurs pour cette raison que les triggers sont extrêment déconseillés dans les grosses bases de données multi-utilisateurs, car tu as très vite fait de ralentir tout le monde.


 
Oui merci c'est ce que je viens de découvrir.  ;)  
L'enregistrement modifié est bloqué jusqu'au commit ou rollback.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed