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 :
- 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.
- 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.
- 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
- 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) :
- 5,48 secondes
- 4,36 secondes
- 5,44 secondes
- 3,80 secondes
Deuxi�me jeu de tests : r�sultat
Le jeu de test comprend 3 sc�narios :
- 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.
- 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.
- 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) :
- 14,01 secondes
- 13,58 secondes
- 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

Vous avez lu gratuitement 1 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer � vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer � vous proposer des publications.