Bonjour,
j'ai une application HyperFile C/S et lorsque je fais une requête c'est extrêmement long (je trouve ça d'ailleurs incroyable...)
J'utilise une table fichier (définie par programmation) voici le code d'exécution :
J'ai également un code de trace entre chaque ligne pour savoir d'où vient la lenteur...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 HExécuteRequêteSQL("f",hRequêteDéfaut,"ma requête") ConstruitTableFichier(Table1,"f",taAvecIdAuto) Table1..FichierParcouru = "f" TableAffiche(Table1)
"ma requête" correspond la première fois à ce code SQL :
NB: j'ai un index sur la rubrique "I0CLEUNIK" puisque c'est l'id auto de ma base...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT TOP 500 Internot.I0CLEUNIK AS I0CLEUNIK, Internot.NomInt AS NomInt, Internot.PrenomInt AS PrenomInt, Internot.Code_postal_special AS Code_postal_special FROM Internot ORDER BY I0CLEUNIK DESC
Jusque là tout va bien, l'affichage est instantané...
Par contre si je rajoute une jointure sur la ville :
Il met 5 secondes à executer la requête (HExécuteRequêteSQL).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 SELECT TOP 500 Internot.I0CLEUNIK AS I0CLEUNIK, Internot.NomInt AS NomInt, Internot.PrenomInt AS PrenomInt, Internot.Code_postal_special AS Code_postal_special, Ville.Ville AS Ville FROM Ville, Internot WHERE Internot.IDVille = Ville.IDVille ORDER BY I0CLEUNIK DESC
Comment améliorer ce temps de traitement, sachant que je ne connais pas la requête à l'avance (c'est une requête qui est définie par le client)... ?
Merci d'avance !!
Pour info, ma base contient environ 30 000 enregistrements internot et 40 000 enregistrements ville.
Partager