WIKI LWS - L'hébergeur Web accessible à tous WIKI LWS - L'hébergeur Web accessible à tous

Ceci est une ancienne révision du document !


Les insertions par Batch

Un des éléments les plus critiques d'une application Multi-Utilisateurs est l'utilisation efficace du réseau.

Après avoir converti l'architecture client / serveur, tous les traitements ne sont plus exécutés sur un ordinateur local avec Microsoft Access.

Les applications client / serveur les plus rapides optimisent le nombre de boucles de votre réseau.

Pensez au réseau comme à un goulot d'étranglement qui prend un coup d'un point de vue performance à chaque fois qu'il est utilisé.

Au lieu de mettre à jour l'enregistrement #1 puis l'enregistrement #2, envoyez un message au serveur qui mettra à jour les 2 en même temps.

  • Par exemple, vous avez besoin de changer le taux d'escompte de ces 3 clients car un nouveau contrat apparaît. A la place de:
UPDATE customer SET discount = 10 WHERE
CustomerID = 5

and then

UPDATE customer SET discount = 10 WHERE
CustomerID = 15

and then

UPDATE customer SET discount = 10 WHERE
CustomerID = 72

Essayez d'exécuter cette mise à jour avec un batch. Utilisez:

UPDATE customer SET discount = 10 WHERE
CustomerID = 5 OR 15 OR 72

Maintenant vous n'avez qu'une seule étape et un seul "coup" pour le réseau. Cette requête est 3 fois plus rapide que les 3 premières requêtes.

  • Si vous mettez à jour toujours 2 enregistrements (comme un ensemble), groupez-les ensemble.

Au lieu de:

INSERT orders (ID, qty) VALUES ('AAA', 17)

and then

INSERT RunningTotal (ID, qty) VALUES ('AAA', qty + 17)

Utilisez une procédure stockée pour faire en même temps cette action. Utilisez la logique dans vos procédures stockées sur le serveur pour mettre à jour les tables en même temps. Voici un exemple d'une procédure cataloguée:

CREATE PROC sp_NewOrder
(@CustID Char(3), @QtyIn INT)
AS
INSERT orders (ID, qty)
VALUES (@CustID, @QtyIn)

INSERT RunningTotal (ID, qty)
VALUES (@CustID, @QtyIn)
  • Lorsque le moment d'envoyer l'enregistrement apparaît, utilisez une requête de "contournement":
sp_NewOrder ("AAA', 17)

Maintenant vous avez envoyé 21 caractères dans un tour à votre réseau au lieu de 79 caractères dans 2 tours de réseau

Articles, vidéos et guides en lien avec cette rubrique

les_insertions_par_batch.1354099304.txt · Dernière modification: 2012/11/28 11:41 par lws
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante : CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki