IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Les fonctions Hlit et SQL dans l'EDi WinDEV
évaluation des temps de réponse

Le , par dsr57

0PARTAGES

Ce billet traite des temps de réponses des fonctions Hlit et SQL dans l'EDi WinDEV


Nous cherchons tous à avoir une application la plus réactive possible, mais cela arrive d'avoir des latences, les causes de celles-ci peuvent être variées :
  • défaut de conception algorithmique
  • défaut de conception de la base de données
  • échange avec la base de données
  • lenteur réseau
  • ...


Dans ce billet, je vais traiter les échanges avec la base de données. WinDev nous donne la possibilité de nous connecter à une base par différentes méthodes.
  • ODBC
  • Ole DB
  • Accès natif


Après le choix de la méthode de connexion, nous avons le choix entre deux types de fonctions Hlit ou SQL, mais je me suis souvent posé la question
"Quelle est la différence entre les fonctions Hlitxxx et SQLxxx ? "

En réponse à celle-ci je n’attends pas les différences de syntaxe et de parcours, mais des informations sur les temps de réponse. Au vu de mes recherches sur le Web, je ne suis pas le seul à chercher cette information, c'est pour cette raison que j'ai effectué un petit comparatif.

Contexte Technique

WinDev : Version 19
SGBD : SQL Server 2005
Accès natif : oui
Réseau : Base de données stockée sur une VM

Jeu de tests

Deux jeux de tests sont mis en place
  • Requête de type SELECT sur 1 table sélectionnant 7 colonnes et 1 condition dans la clause WHERE sur un champ indexé,
  • Requête de type SELECT sur 3 tables sélectionnant 4 colonnes, jointure entre les tables effectuées avec la clause INNER JOIN et une condition dans la clause WHERE sur un champ indexé


Nombre de résultats des requêtes : 49500.


Premier jeu de tests : résultat

Le jeu de test comprend 4 scénarios :

  1. connexion effectuée avec la fonction HouvreConnexion, requête exécutée avec la fonction HExecuteRequeteSql, nom de la requête dans variable de type chaine.
  2. connexion effectuée avec la fonction HouvreConnexion, requête exécutée avec la fonction HExecuteRequeteSql, nom de la requête dans variable de source de données.
  3. connexion effectuée avec la fonction SQLConnecte, requête exécutée avec la fonction SqlExec, parcours effectué avec les fonctions SqlPremier, Sql.endehors et SqlSuivant
  4. connexion effectuée avec la fonction SQLConnecte, requête exécutée avec la fonction SqlExec, parcours effectué avec la fonction SqlAvance.


Résultats (moyenne des valeurs sur 25 exécutions) :

  1. 5,48 secondes
  2. 4,36 secondes
  3. 5,44 secondes
  4. 3,80 secondes


Deuxième jeu de tests : résultat

Le jeu de test comprend 3 scénarios :

  1. connexion effectuée avec la fonction HouvreConnexion, requête exécutée avec la fonction HExecuteRequeteSql, nom de la requête dans variable de type chaine.
  2. connexion effectuée avec la fonction HouvreConnexion, requête exécutée avec la fonction HExecuteRequeteSql, nom de la requête dans variable de source de données.
  3. connexion effectuée avec la fonction SQLConnecte, requête exécutée avec la fonction SqlExec, parcours effectué avec la fonction SqlAvance.


Résultats (moyenne sur 10 exécutions) :

  1. 14,01 secondes
  2. 13,58 secondes
  3. 4,23 secondes


Information : Dans les scénarios 1 et 2, les fonctions HExécuteRequeteSql, HlitPremier, Hlitsuivant, ont été appelées avec des options pour optimiser le temps de traitements.

Bon dev à tous

Une erreur dans cette actualité ? Signalez-nous-la !