OVH Cloud OVH Cloud

Connaître le volume de donnés transmis d'une requête

2 réponses
Avatar
Yanos El Guerilleros
Bonjour,

Nous avons des sites distants interrogeant notre base par VPN, ca
fonctionne bien, sauf qu'une requête de statistiques commence à être un
peu volumineuse et le tuyau commence à s'essoufler, donc j'aimerais
pouvoir connaître le volume (a peu de chose près) de données transmis
lors d'une requête pour essayer d'alléger le transfert.

J'ai regardé le profiler ou le moniteur de performance mais aucune
information ne me semble pertinente sur ce point.

Je sais que je peux compter la taille d'une ligne, mais j'ai des
varchar() donc j'obtient une taille théorique, mais ca ne me convient
pas suivant la stat j'ai des champs texte plus ou moins long, et
certaines personnes mettent plus de temps à récupérer le même nombre de
lignes que d'autres.

C'est pour cela que j'aimerais pouvoir connaître ce volume au niveau de
l'exécution d'une requête.

Merci,

A++

Yanos

2 réponses

Avatar
bruno reiter [MVP]
c'est difficile de connaitre le volume avant de l'envoyer, il faudrait
passer par une table temporaire (ou non) et voir la taille.

en général on essaie plutôt de limiter le nombre de lignes à envoyer avec
TOP n ou bien SET ROWCOUNT nnn
"Yanos El Guerilleros" wrote in message
news:uQ#
Bonjour,

Nous avons des sites distants interrogeant notre base par VPN, ca
fonctionne bien, sauf qu'une requête de statistiques commence à être un
peu volumineuse et le tuyau commence à s'essoufler, donc j'aimerais
pouvoir connaître le volume (a peu de chose près) de données transmis
lors d'une requête pour essayer d'alléger le transfert.

J'ai regardé le profiler ou le moniteur de performance mais aucune
information ne me semble pertinente sur ce point.

Je sais que je peux compter la taille d'une ligne, mais j'ai des
varchar() donc j'obtient une taille théorique, mais ca ne me convient
pas suivant la stat j'ai des champs texte plus ou moins long, et
certaines personnes mettent plus de temps à récupérer le même nombre de
lignes que d'autres.

C'est pour cela que j'aimerais pouvoir connaître ce volume au niveau de
l'exécution d'une requête.

Merci,

A++

Yanos


Avatar
Yanos El Guerilleros
> c'est difficile de connaitre le volume avant de l'envoyer, il faudrait
passer par une table temporaire (ou non) et voir la taille.



Mouais je me doutais un peu de la chose :)

en général on essaie plutôt de limiter le nombre de lignes à envoyer avec
TOP n ou bien SET ROWCOUNT nnn



Je sais, mais là il s'agit en fait d'une sorte de cube décisionnel, mais
qui n'en est pas un (c'est un peu tordu comme truc, même j'ai pas encore
tout pigé dans ce qu'on me demande ;), pour améliorer les performances
il faudrait que je découpe mon chargement en plusieurs requêtes pour
limiter les transferts, mais le problème c'est que la découpe est
dépendante de l'utilisateur, car il n'a pas les mêmes libellés (voir pas
de libellés du tout), et plutôt que d'y aller a tatons en calculant le
temps de téléchargement (valeur plutôt variable suivant l'état du
réseau), j'aurais préféré utiliser le volume.

Bon je vais voir si je peux utiliser un sniffer pour avoir un semblant
d'infos.

Merci quand même,

A++

Yanos