Je prévoyais de faire des tests de performance mais comme c'est beaucoup de travail, j'aimerais vérifier si je n'ai pas oublié de réponse évidente avant.
J'ai une requête énorme qui récupère quelques détails supplémentaires pour chaque ligne avec une sous-requête.
Chaque ligne est ensuite utilisée dans un ListAdapter qui est branché dans un ListView, donc une autre boucle prend chaque ligne une par une pour en faire un ListItem.
Qu'est-ce que vous pensez est plus efficace :
- Garder les sous-requêtes dans le fouillis SQL, en comptant sur le moteur SQL pour optimiser.
- Retirer les sous-requêtes dans la boucle ListAdapter, donc on charge les détails paresseusement à l'affichage : beaucoup plus lisible mais j'ai peur que trop de demandes ralentissent le processus.
Deux choses importantes :
- Je ne peux pas réécrire le gros morceau SQL pour me débarrasser des sous-requêtes. Je sais que ce serait mieux, mais j'ai échoué à le faire.
- Pour autant que je sache, une liste ne contiendra pas plus de 1000 éléments, et c'est une application de bureau donc il n'y a pas de concurrence. Est-ce même pertinent de se soucier des performances dans ce cas ? Si non, je serais quand même intéressé par la réponse pour un site web à fort trafic. C'est bon de savoir...