Bonjour !
Mon intitulé à dût certainement faire soupirer pas mal de programmeur (il y a bien 30'000 moyens de trouver une solution), mais ma question est plus une forme d'analyse : à partir d'une table ultra-simple, je remplis deux combobox.
Ma base de donnée intitulée "cp" contient les champs suivant :
id_cp | cp | ville
Cette base contient en fait tous les codes postales et ville de Suisse. Ensuite, l'utilisateur sélectionnera soit le nom de la ville, soit le numéro de code postale. Les deux CBbox étant liées en sélectionnant le code 1200, par exemple, on tombera sur Genève dans l'autre cb.
La récupération de ces données est très simple. Mais j'ai volontairement pris un exemple simple pour me dépêtrer un peu avec la lenteur générale que j'ai constaté en travaillant sous VB.Net avec des DB (postgres ici). Lenteur très certainement dût à mes propres compétences
J'ai tout d'abord effectués quelques essais de requête en voyant le temps nécessaire pour la charger.
Premier essai : sans index
SELECT * FROM cp;
> 200 ms (entre 220 et 240ms)
Deuxième essai : index sur cp + ville
SELECT * FROM cp;
< 200 ms (entre 160 et 180ms)
SELECT cp,ville FROM cp;
< 150 ms (entre 130 et 150ms)
Troisième essai : index sur cp
Même chose qu'au dessus
Je constate donc que sur ma DB de 5000 lignes, un index peut changer le temps de requête, mais d'à peine 100ms (dans un cas aussi simple que celui-ci donc). Donc, toujours dans ce cas-ci, à moins que vous n'ayez d'autre suggestions, ce n'est pas vraiment au niveau de la base qu'il faut regarder.
C'est donc au niveau de l'envoi des données dans la CB. Et autant dire qu'un simple DataSource ne fait pas des miracles : c'est plutôt lent. Sans même effectuer une requête, en utilisant une DataSource DEJA créée, le temps de "population" de mes CB est loins d'être négligeable, c'est de l'ordre de 3 à 5 secondes, voir plus (je parle des "pires" résultats cependant). Je doute que le remplissage manuel avec un DR soit beaucoup plus rapide.
J'ai également fait le tests un peu grossier de la remplir à partir d'un fichier XML : pas plus rapide.
Donc selon vos expériences, qu'elle est la solution la plus rapide ? Y a t'il une alternative ? (auto-completion dans un textbox, etc)
Merci d'avance (et merci pour ceux qui m'ont lu jusqu'ici !)
Partager