Bonjour,
quelqu'un peut il m'expliquer la différence entre l'évènement SQL*Net message to client et SQL*Net message from client ?
qu'est-ce que ça signifie si l'un de ces évènement apparait dans le top 5 du rapport statsqpack?
Version imprimable
Bonjour,
quelqu'un peut il m'expliquer la différence entre l'évènement SQL*Net message to client et SQL*Net message from client ?
qu'est-ce que ça signifie si l'un de ces évènement apparait dans le top 5 du rapport statsqpack?
En principe ce sont des événements qui peuvent être ignorés. Tu peux toujours vérifier le réseau pour t'en assurer mais j'ai rarement vu un soucis sur la couche SQL*Net.
oui mais que veulent ils dirent exactement?
Si ca peut t'aider
SQL*Net message from client
Le process server attend un message du client
Il est généralement considéré comme Idle , comme Oracle attend du client ce qu’il a à exécuter.
Le temps d’attente ici as attribué au client plus le temps de transfert via le réseau.
SQL*Net message to client
Le serveur est en train d’envoyer un message au client, il mesure combien de temps il prend pour mettre le message de réponse dans le buffer TCP d’envoi sur le server.
Une fois que le paquet réponse est mis dans le tampon envoi CP, le process serveur Oracle attend de nouveau “SQL*Net message FROM client”.
On ne peut utiliser cet événement d’attente pour mesurer une latence réseau.
Non mais la doc c'est trop théorique.
L'explication de fatsora me convient parfaitement et je l'en remercie
Ce forum sert à expliquer des concepts, répondre à des questions concrétes... pas à chercher dans la doc à la place des autres. S'il avait demandé de nous expliquer un passage de la doc, j'aurais été bien plus conciliant ;)
Surtout que la doc est particulièrement claire :
http://download.oracle.com/docs/cd/B...htm#sthref3197
SQL*Net message to client : The server (foreground process) is sending a message to the client.
SQL*Net message from client : The server process (foreground process) waits for a message from the client process to arrive.
En ajoutant celle-ci : http://download.oracle.com/docs/cd/B....htm#sthref674
On obtient exactement la réponse de fatsora :king:
PS : et en plus c'est moi qu'ai du passé le topic en résolu :roll:
Bonjour,
J'ai lu et j'espère avoir compris. J'administre une application utilisant une base Oracle 9i. Les utilisateurs se plaignent fréquemment de "lenteurs".
Sur les vues v$....., je constate que les sessions clientes sont souvent en attente :
"SQL*Net message from client" et le plus souvent sur des délais de l'ordre de la minute. Le paramètre P2 est toujours à 1. J'ai bien compris que le SGBD était en attente de données du client, mais normalement l'application cliente ne réalise aucun traitement susceptible de durer une minute...
Cet état correspond t-il à un état normal de la session : J'ai effectué mes requêtes et libérer mes ressources (curseurs) correctement donc j'attends une autre requête du client ou signifie t-il qu'un traitement reste en attente sur la dernière requête passée, genre le curseur n'a pas été fermé, le commit pas fait etc.... ?
Merci pour vos réponses.
Pour les wait events, cela m'avait permis une fois de diminuer significativement le temps de traitement : en effet, j'avais remarqué qu'il y avait bcp d'aller retours entre la base et le client : en fait pour ramener les données d'une requêtes, l'application faisait des fetchs à chaque enregistrements => Beaucoup de trafic réseau pour pas grand chose.
On avait modifié l'application pour faire des fetchs de 100, et sur une durée de 6h de traitements, on avait gagné 1h. Voilà une des interprétations qu'on peut faire des wait events.
Après une autre interprétation serait de se rendre compte de l'état du réseau, et donc de décider d'améliorer le trafic ;). Mais bon je ne suis pas sûr que ce soit les wait event qui t'alertent le mieux là dessus !