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

Le Blog de DSR57 - Programmation WinDev

[Actualité] WinDev : fonctions Hlit ou SQL ?

Noter ce billet
par , 03/04/2015 à 13h56 (6823 Affichages)
Ce billet traite des temps de réponses des fonctions Hlit et SQL dans l'EDi WinDEV

Nom : hyper-file-sql.jpg
Affichages : 8815
Taille : 8,1 Ko

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
  • ...

Nom : latence 2.jpg
Affichages : 6640
Taille : 13,9 Ko Nom : images.jpg
Affichages : 6897
Taille : 6,0 Ko

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.

Nom : tester-mon-adsl_qualite-temps-de-latence.jpg
Affichages : 6146
Taille : 54,5 Ko

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

Envoyer le billet « WinDev :  fonctions Hlit ou SQL  ? » dans le blog Viadeo Envoyer le billet « WinDev :  fonctions Hlit ou SQL  ? » dans le blog Twitter Envoyer le billet « WinDev :  fonctions Hlit ou SQL  ? » dans le blog Google Envoyer le billet « WinDev :  fonctions Hlit ou SQL  ? » dans le blog Facebook Envoyer le billet « WinDev :  fonctions Hlit ou SQL  ? » dans le blog Digg Envoyer le billet « WinDev :  fonctions Hlit ou SQL  ? » dans le blog Delicious Envoyer le billet « WinDev :  fonctions Hlit ou SQL  ? » dans le blog MySpace Envoyer le billet « WinDev :  fonctions Hlit ou SQL  ? » dans le blog Yahoo

Mis à jour 03/04/2015 à 17h12 par Hinault Romaric

Catégories
Sans catégorie

Commentaires