Durée d'exécution de PS

Le
Jean-Nicolas BERGER
Bonjour,
Quelqu'un pourrait-il me confirmer que la durée tracée dans le Profiler pour
les événements "SP:Completed" englobe le temps nécessaire au réseau pour
transmettre les RecordSets au client?
Merci d'avance.
JN.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
SQLpro
Le #11868281
Non. Les durée sont les durées d'exécution et non les temps réseau.
Sauf si la procédure fait appel à une ressource externe dans son code.

A +

On 17 oct, 10:30, Jean-Nicolas BERGER
Bonjour,
Quelqu'un pourrait-il me confirmer que la durée tracée dans le Profil er pour
les événements "SP:Completed" englobe le temps nécessaire au rése au pour
transmettre les RecordSets au client?
Merci d'avance.
JN.


Jean-Nicolas BERGER
Le #11868271
bonjour,

Non. Les durée sont les durées d'exécution et non les temps réseau.
Sauf si la procédure fait appel à une ressource externe dans son code.




Alors j'ai du mal à comprendre pourquoi, sur une même PS et en faisant en
sorte (relancer plusieurs fois la PS) que la notion de cache n'intervienne
pas, j'ai des Durées différentes entre un PC client sur un bon réseau et un
PC client sur un réseau pourri (et bien sûr l'écart est toujours dans le même
sens...)
Quelqu'un aurait-il une piste?
Merci d'avance.
JN.
SQLpro
Le #11868261
Avez vous mis SET NOCOUNT ON dans votre procédure ? Si non, il y a un
envoi d'information technique pour chaque ordre SQL de la PS.

SET NOCOUNT ON permet d'éviter l'apparition des messages
"n ligne traitées"
à chaque execution d'ordre SQL.
C'est une recommandation forte de désactiver ce comportement par
défaut pour tout développement (paramètre de session).

A +

On 17 oct, 11:02, Jean-Nicolas BERGER
bonjour,

> Non. Les durée sont les durées d'exécution et non les temps rés eau.
> Sauf si la procédure fait appel à une ressource externe dans son co de.

Alors j'ai du mal à comprendre pourquoi, sur une même PS et en faisan t en
sorte (relancer plusieurs fois la PS) que la notion de cache n'intervienne
pas, j'ai des Durées différentes entre un PC client sur un bon rése au et un
PC client sur un réseau pourri (et bien sûr l'écart est toujours da ns le même
sens...)
Quelqu'un aurait-il une piste?
Merci d'avance.
JN.


Jean-Nicolas BERGER
Le #11868251
> Avez vous mis SET NOCOUNT ON dans votre procédure ? Si non, il y a un
envoi d'information technique pour chaque ordre SQL de la PS.



Le SET NOCOUNT est bien positionné à ON.
Quoi qu'il en soit, la différence de durée observées (3 secondes en réseau
lent contre 1 en réseau rapide) ne semble pas pouvoir s'expliquer par ce
point.

Cordialement.
JN BERGER
Philippe TROTIN [MS]
Le #11868181
Bonjour,

Utilisez vous une authentification Windows ou SQL Server ?
Windows va solliciter le contrôleur de domaine alors que SQL va solliciter
votre base master.

Cordialement
_______________________________

Philippe TROTIN
Microsoft Services France
_______________________________

"Jean-Nicolas BERGER" dans le message de groupe de discussion :



Avez vous mis SET NOCOUNT ON dans votre procédure ? Si non, il y a un
envoi d'information technique pour chaque ordre SQL de la PS.



Le SET NOCOUNT est bien positionné à ON.
Quoi qu'il en soit, la différence de durée observées (3 secondes en réseau
lent contre 1 en réseau rapide) ne semble pas pouvoir s'expliquer par ce
point.

Cordialement.
JN BERGER


Jean-Nicolas BERGER
Le #11868171
> Utilisez vous une authentification Windows ou SQL Server ?
Windows va solliciter le contrôleur de domaine alors que SQL va solliciter
votre base master.



Nous utilisons une authentification SQL SERVER.
D'autres idées?
Merci d'avance.
JN.
Philippe TROTIN [MS]
Le #11868161
Avez vous utiliser le code suivant entre vos deux appels (pour vous assurer
que cela n'est pas lié au cache de SQL) ?

DBCC FREEPROCCACHE
GO
DBCC DROPCLEANBUFFERS
GO

Cordialement
_______________________________

Philippe TROTIN
Microsoft Services France
_______________________________

"Jean-Nicolas BERGER" dans le message de groupe de discussion :

Utilisez vous une authentification Windows ou SQL Server ?
Windows va solliciter le contrôleur de domaine alors que SQL va
solliciter
votre base master.



Nous utilisons une authentification SQL SERVER.
D'autres idées?
Merci d'avance.
JN.


Jean-Nicolas BERGER
Le #11868151
> Avez vous utiliser le code suivant entre vos deux appels (pour vous assurer
que cela n'est pas lié au cache de SQL) ?

DBCC FREEPROCCACHE
GO
DBCC DROPCLEANBUFFERS
GO



Nous n'avons pas vidé le cache, mais nous avons d'abord lancé une fois la PS
(histoire que le cache s'en imprègne) et ensuite chacun notre tour lancé la
même PS, avec les mêmes paramètres.
Et le résultat est toujours du même ordre de grandeur, toujours dans le même
sens.
Plus ça vient, moins je comprends...
JN.
Jean-Nicolas BERGER
Le #11868111
> Plus ça vient, moins je comprends...



Une piste toutefois : la PS effectue plusieurs SELECT, le premier étant le
plus gros.
Et si elle attendait que le client ait reçu les résultat du premier SELECT
avant de poursuivre ou de lancer le suivant?
JN.
Fred BROUARD
Le #11867601
Jean-Nicolas BERGER a écrit :
Plus ça vient, moins je comprends...



Une piste toutefois : la PS effectue plusieurs SELECT, le premier étant le
plus gros.
Et si elle attendait que le client ait reçu les résultat du premier SELECT
avant de poursuivre ou de lancer le suivant?
JN.



oui !

a +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
Publicité
Poster une réponse
Anonyme