Attention sur le "bench" de temps de réponse d'une requête
Si vous exécutez deux fois de suite la même requête, vous verrez que le temps d'exécution ne sera pas le même !
Tout simplement parce que la première requête doit déjà calculer son plan d'exécution (qui est réutilisé tel quel la deuxième fois)
Si vous êtes au sein de la même "connexion" ou "transaction" et que le nombre de résultat est important pour vous : faites une requête qui comptera le nombre de résultat AVANT de les récupérer.
select count(1) from table where XXXX
--> renvoie le nombre d'enregistrements dans la table
Pour utiliser la méthode de OButterlin, il faudra que votre ResultSet ne soit pas initialisé en TYPE_FORWARD_ONLY (ce qui est le cas par défaut).
Par contre, c'est super efficace.
(la question de base était de "ne pas passer par un count" : c'est pourtant la meilleure solution car c'est celle qui t'évitera de faire des trucs farfelus)
Partager