PreviousNext
Help > Développement > Accès aux données de l'AS/400 > Accès natif > Performances - conseils
Performances - conseils

 Les deux éléments clés qui déterminent la rapidité de l'accès aux données sont :

- le nombre d'accès réseau,

- le volume des données transférées,

  

Configuration et easycom.ini

 

Utiliser l'écran "Optimisation" de Easycom Configuration.

 

En déploiement si vous n'avez pas fait l'installation complète, ces informations se retrouvent dans le fichier easycom.ini qui se trouve dans le répertoire de Windows et contient les principaux paramètres de fonctionnement.

On peut améliorer les performances en jouant sur les entrées suivantes :

[BUFFERS]
records=
size=

La ligne records=xx détermine la taille du cache côté PC. Une lecture par clé pourra ainsi charger le nombre d’enregistrements spécifié dans un même bloc en réduisant ainsi le nombre d’accès distants. La taille maximale est fixée par l’entrée size=yyyy avec un maximum de 64Ko (65535).

Attention ! Un cache trop important peut aussi ralentir l’application en effectuant des lectures non nécessaires.

Il est également possible de définir un cache au niveau du fichier par la fonction ASProprietes.

 

[TCP]
Compression=

La compression TCP/IP est activée en mettant la valeur à 1 (désactivée par la valeur 0). Les données sont alors compressées avant leur envoi et le volume transféré est ainsi réduit.

 

SQLIDX

 

L'option SQLIDX qui permet d'avoir des loupes dans les tables liées à des requêtes peut être désactivée dans les infos étendues de la connexion si cette fonctionnalité n'est pas nécessaire. En effet cette option sollicite davantage le serveur par la soumission de requêtes SQL supplémentaires.

 

ASPropriete

 

La fonction ASPropriete permet de fixer des propriétés de cache (en lecture et en écriture).

 

Ouvertures

 

Afin que la première ouverture soit la plus pertinente il peut être utile de modifier les infos étendues du fichier et la ligne MAIN en indiquant le fichier logique le plus utilisé. Ceci économisera le temps d’ouverture du fichier physique.

 

Liste et combos

 

Si vous avez des listes et combos associées à des fichiers qui ne sont que rarement mis à jour (liste de types, de catégories...), utiliser des tableaux ou des copies locales plutôt que des liaisons sur le fichier d'origine.

 

Tables Fichier avec liaisons

 

Si une fenêtre affiche un fichier avec liaisons, le chargement de chaque ligne de la table va entraîner des lectures de toutes les rubriques de l’enregistrement correspondant sur chacun des fichiers liés. En plus de la multiplication des accès, on perd aussi le bénéfice de la lecture par bloc, puisque pour chaque donnée liée, WinDev effectue une lecture par clé.

 

Deux autres approches peuvent être conseillées pour ce type de table :

· Utiliser une requête qui utilise un SELECT avec des INNER JOIN.

· Créer sur l’AS/400 un logique joint et l’importer dans l’analyse.

 

Filtres

 

Les filtres avec condition génèrent un OPNQRYF, alors que les bornes génèrent des accès par clé, puis séquentiels.

Un filtre sur clé sera donc plus efficace et la création d'un nouveau logique peut être pertinente.

 

Verrouillages

 

Verrouiller dès la lecture les enregistrements destinés à être modifiés.

Ceci évitera le mécanisme de contrôle qui va relire l'enregistrement pour vérifier qu'il n'y a pas eu de modifications depuis la première lecture.

 

HCréeVue

 

Un HCréeVue sur condition va provoquer une lecture séquentielle de tous les enregistrements qui seront ensuite testés côté client, ce qui revient donc à lire et à charger l’intégralité du fichier… Pour éviter ce mécanisme, la solution consiste à faire précéder le HCréeVue par un HFiltre sur une condition identique. Dans ce cas un OPNQRYF est effectué sur l’AS/400 et seuls les données pertinentes sont transférées.

Un HCréeVue sur bornes en revanche ne gagnera pas à être précédé du HFiltre.

 

Mémos

 

Les mémos sont stockés dans des fichiers complémentaires, par défaut l’ouverture, l’écriture et la lecture sur le fichier principal sont synchronisées avec l’ouverture, l’écriture et la lecture du (des) fichier(s) mémo. Si un traitement n’utilise pas le fichier mémo, vous avez tout intérêt à « débrancher » la gestion par la fonction HGèreMémo.

 

<Résultat> = HGèreMémo([<Nom du fichier>, [<Nom de la rubrique>,]] <Mode de gestion>)

Avec hMémoOui pour activer et hMémoNon pour désactiver.

Attention : ces fonctions doivent s’accompagner de la fermeture et de la réouverture du fichier pour être prises en compte.

 

Blob

 

Si vous manipulez des fichiers avec des blobs, il peut être utile d'éviter le chargement et le transfert de données volumineuses dans les traitements où ils ne sont pas requis.

Un logique sur le fichier sans le champ blob peut être créé et importé comme un fichier alternatif, on peut aussi utiliser une requête.