Bonjour,
Je développe en VB .net, a l'aide de la technologie windows Forms, sur le SGBD SQL Server.
J'ai récemment fais l’acquisition d'un serveur dédié hébergé chez OVH.
En local, tous se déroulais parfaitement, les traitements étaient rapide (jamais plus de 5sec).
Seulement, depuis que le logiciel va chercher les informations sur le serveur, certaines requêtes durent plus d'une minute, ce qui n'est pas tolérable. J'ai donc commencer a optimiser mes requêtes. Et c'est alors que j'ai compris la vraie nature du problème.
Une requête simple s’exécute rapidement, a quasiment la même vitesse qu'en local. Le problème provient de l’exécution de double requete, je m'explique :
La première ligne, provenant de la première requête, s’exécute sans problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 objDR = requeteSELECT("SELECT * FROM TbAtt WHERE FinW<='" & dateJusque & "'" objDR.read wsExcel.Cells(14 + compteur, 2) = objDR.Item(17) wsExcel.Cells(14 + compteur, 3) = RequeteINFOAlt1("CodeAtt", "TbCodeAtt", "IDCodeAtt", objDR.Item(5))
La seconde quant à elle, prend plus de 5 sec à s’exécuter, sachant que ce code est contenu dans une boucle while, les temps de réponses atteignent vite la minute.
Concernant l'optimisation de cette requête, j'ai tout bonnement supprimé la seconde, j'ai rentré le contenu de la table dans un tableau, et ainsi j'ai pu retrouver un temps d’exécution correct.
Sauf que, entrer toute les donné dans un tableau n'est pas toujours possible. Une table fais 36k ligne, bien qu'elle ne soit pas excessivement lourde, la traiter par le code me semble assez conséquent !
J'ai eu dans l’après midi un technicien d'OVH qui m'as proposer 2 choses :
- Optimiser mes requêtes SQL, ce que j'avais commencer a faire, mais qu'il semble compliquer a réaliser sans perdre d'info, ou sans perdre de rapidité.
- Éventuellement configurer SQL Server pour ce genre de traitement.
Etant assez novice dans la configuration d'un serveur, je n'y avais absolument pas touché. Mais je me demande si je n'aurais pas du...
Ce qui me surprend le plus dans cette histoire, c'est qu'en local avant, même sur une machine vraiment peu puissante, les traitement étaient très rapide. Pensant que le souci venais de notre ADSL, j'ai fais un speedTest, et j'ai obtenu un résultat de 10Mbps, pas de souci donc, et le serveur est lui aussi correctement desservi (fibre).
Je fais donc appel aux habitué de ce SGBD, si il y a une solution miracle par la configuration, ou si il n'y a pas de secret et qu'il faut minimiser les traitements au maximum.
Merci a vous !
Partager