IBM DB2 Connect Guide D'utilisation page 97

Table des Matières

Publicité

à chaque message envoyé ou reçu quelle que soit sa taille. Le blocage de
données réduit le nombre de messages requis pour la même quantité de
transfert de données.
Grâce au blocage, la première ligne de données d'une requête ne sera pas
livrée à l'application avant que le premier bloc ne soit reçu. Le blocage
augmente le délai d'extraction de la première ligne mais améliore le délai
d'extraction des lignes suivantes.
Un autre point est la quantité d'espace mémoire utilisée. La partie active de
l'espace mémoire augmente lorsque le blocage est activé.
Dans DB2 Connect, vous pouvez contrôler la quantité de données
transférée au sein de chaque bloc.
Pour appeler le blocage, utilisez l'option BLOCKING de la commande prep
ou bind. Le blocage est activé si :
v Le curseur est en lecture seulement, ou
v Le curseur est équivoque et que le blocage est spécifié dans la
commande prep ou bind.
Remarque : Lorsque vous utilisez le SQL dynamique, le curseur est
équivoque.
Instructions SQL avec BLOCKING
Les instructions SQL SELECT actualisables (à l'aide des instructions
UPDATE/DELETE WHERE CURRENT OF) sont des requêtes non bloquantes ;
aussi, ne les utilisez que lorsqu'elles sont absolument nécessaires.
Une instruction SELECT actualisable garantit que la ligne ne sera pas
modifiée entre le moment où l'instruction SELECT est achevée et le
moment où l'instruction UPDATE/DELETE est exécutée. Si ce niveau d'accès
concurrent n'est pas important pour votre application, une alternative
consiste à utiliser l'instruction DELETE ou UPDATE avec des critères de
recherche basés sur des valeurs renvoyées par une instruction SELECT non
actualisable.
Pour une instruction SELECT en lecture seulement, spécifiez FOR FETCH
ONLY, sauf sous VM et VSE, sur lesquels l'instruction n'est pas prise en
charge.
SQL statique et dynamique
Utilisez le SQL statique autant que possible. Il vous évite la préparation de
la section d'exécution SQL ainsi que l'utilisation de curseurs équivoques. Si
vous ne pouvez éviter d'utiliser le SQL dynamique, vous pouvez procéder
comme suit pour réduire le trafic réseau et améliorer les performances :
v Si l'instruction est une instruction SELECT qui doit être préparée,
exécutez PREPARE ... INTO SQLDA. La structure SQLDA doit être
allouée à la taille maximale requise par vos paramètres. Si le nombre
maximal de colonnes est x et que le nombre n'est pas supposé diminuer,
allouez une structure SQLDA avec x SQLVAR. Si le nombre de colonnes
potentielles est incertain (et que l'espace mémoire n'est pas un
problème), utilisez le nombre maximal de SQLVAR (256).
Si l'allocation de la structure SQLDA n'est pas suffisante pour stocker la
structure SQLDA retour, le programme doit exécuter une autre
instruction DESCRIBE avec une structure SQLDA suffisante pour stocker
à nouveau les résultats. Le trafic réseau s'en trouverait augmenter.
Chapitre 4. Réglage et DB2 Connect
87

Publicité

Table des Matières
loading

Table des Matières