|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Futur Membre du Club
![]() Inscription : décembre 2011 Messages : 70 ![]() |
Bonjour à tous,
j'effectue une requête SQL qui me retourne un résultat contenant environ 50 000 lignes que je désire afficher dans une jtable. J'obtiens des temps d'environs 65 sec pour effectuer celà. Je trouve ce temps élevé et aimerai optimiser mon code. L'étape consommant le plus de temps (environ 60 sec) est la suivante : dans le Model associé à ma JTable, je stocke les données de mon ResultSet dans un ArrayList. Code :
J'ai essayé de paramétrer le nombre de lignes à récupérer en faisant ceci : Code :
Je ferme correctement mes ResultSet, Statement, Connexion. J'utilise également un PreparedStatement. Quelqu'un aurait-il une idée pour améliorer les performances? Merci d'avance |
||||
|
|
00
|
|
|
#2 |
|
Nouveau Membre du Club
![]() Développeur Java Inscription : janvier 2011 Messages : 34 ![]() |
Montres nous ta requête. Tu as quel index pour cette requête?
|
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() ![]() |
Chaque appel à next va créer des objets correspondants à la ligne. Si on suppose que tu n'as que 10 colonnes de type String, t'es quand même gentillement occupé de demander à java de créer et détruire 500.000 Objets. Il ne faut par regarder que le nombre de lignes mais aussi la mémoire que ça occupe.
Vu que, en général hein, on ne sais pas afficher plus de 80 lignes à la fois à l'écran, on se demande l'intérêt de pomper 50.000 lignes d'un coup plutot que 100 lignes à la fois Maintenant, certes, 60 secondes c'est beaucoup, et il faudrait aussi regarder quelle quantité ça occupe sur la couche réseau. Si chaue ligne occupe 10Ko de données (avec des varchar tout plein ça chiffre vite), t'es quand même occupé de faitre transiter 500M sur le réseau
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et ![]() Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir. |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Sébastien BarreDéveloppeur Java Inscription : mai 2011 Messages : 66 ![]() |
Si c'est pour afficher dans une JTable, autant faire un "page à page", et récupérer tes objets par paquets de 100 à chaque changement de page.
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com