OVH Cloud OVH Cloud

java.sql et fetchSize()

2 réponses
Avatar
Pif
Bonjour, c'est quelle méthode qui permet de récupérer le nombre
d'enregistrement contenu dans un ResultSet ? Est-ce la méthode fetchsize
? Ca veut dire quoi Fecth exactement ?

D'autre part, cette méthode représente elle un cout ou est ce une donnée
qui a déjà été calculée auparavant et qui est inscrite dans des méta
données ?

Merci !

2 réponses

Avatar
Fabien Bergeret
Pif wrote:
Bonjour, c'est quelle méthode qui permet de récupérer le nombre
d'enregistrement contenu dans un ResultSet ? Est-ce la méthode fetchsize
? Ca veut dire quoi Fecth exactement ?

D'autre part, cette méthode représente elle un cout ou est ce une donnée
qui a déjà été calculée auparavant et qui est inscrite dans des méta
données ?

Merci !

Le fetchsize, c'est le nombre d'enregistrements qui remontent en un fois.

Exemple : un select qui remonte 500 enregistrements se fait en une seule
connection reseau avec un fetchsize de 500, et 500 connections reseau
avec un fetchsize de 1 (ouille).
Mais, plus tu mets gros, plus ca consomme de RAM ...
Si le but de la requete est de compter, ben faut faire un count et non
un select.
Si la but de la requete est de remonter, il suffit de mettre un compteur
sur la boucle de parcours du ResultSet

Avatar
Simon OUALID
Pif wrote:
Bonjour, c'est quelle méthode qui permet de récupérer le nombre
d'enregistrement contenu dans un ResultSet ? Est-ce la méthode fetchsize
? Ca veut dire quoi Fecth exactement ?

D'autre part, cette méthode représente elle un cout ou est ce une donnée
qui a déjà été calculée auparavant et qui est inscrite dans des méta
données ?

Merci !



Non, getFetchSize() renvoie le nombre d'enregistrement récupéré par le
drivers quand il a besoin d'une page de résultat supplémentaire.

Ce que tu cherches, c'est last() et getRow()... Mais ça n'est
malheureusement pas implémenté par tous les couples SGBD/drivers. Il
vaut donc mieux passer par des aggrecations sql (count) pour que ça
reste portable.

Symon