|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : mai 2007 Messages : 88 ![]() |
Bonjour,
MySQL 5.1.48 J'ai une base qui contient une table T et une procédure P. Cette procédure a comme paramètre IN un INTEGER et en INOUT un code retour. En gros cette procédure fait: puis supprimme la table T2 et tout ceci le nombre de fois passé en paramètre. Rien de bien utile mais surtout rien de bien compliqué. Je me demande pourquoi lorsque je me connecte au serveur depuis un host distant et que j'exécute (call) cette procédure, j'ai un trafic réseau qui gonfle comme si le serveur me (me = client) renvoyais le résultat du SELECT *. Dans la même logique, SQL Server me renvoie des données mais pas si la requête est faite pour créer une autre table à partir du résultat du SELECT (ce qui est ce à quoi je m'attendais aussi pour MySQL). merci pour vos réponses d'experts... j'espère |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 953 ![]() |
MySQL est en pratique très loin d'être optimisé ! Ce n'est qu'une vulgaire encapsulation de SQL sur des fichiers cobol avec un ersatz de transactions...
Ne vous étonnez donc pas des performances lamentables dans certaines circonstances... A lire : http://blog.developpez.com/sqlpro/p9...udre-aux-yeux/ Pour les perf, lire : http://blog.developpez.com/sqlpro/p9...udre-aux-yeux/ A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : mai 2007 Messages : 88 ![]() |
merci pour l'info.
Dommage que ça ne réponde pas à ma question toutefois J'ai un début de réponse ou en tout cas de nouveaux éléments. L'action que je décris (l'appel à la proc) est fait depuis un programme JAVA (mysql-connector-java-5.1.14-bin.jar). Si je fais le même call avec le même user, depuis la même machine mais en interactif (en tapant mon appel directement dans le client MySQL) alors là il semble que j'ai le comportement attendu... pas de traffic réseau entrant sur le client depuis le serveur... C'est peut-être lié à la manière dont le JAVA execute la query qui fait le call ... ? |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 953 ![]() |
Poste le code de ta proc.
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#5 | ||||||
|
Nouveau Membre du Club
![]() Inscription : mai 2007 Messages : 88 ![]() |
la proc:
Code :
appelé par le JAVA comme ça: Code :
et appelé depuis le client MySQL comme ça: Code :
donc je me demandais si ça ne venait pas du 2ème "executeUpdate();" |
||||||
|
|
00
|
|
|
#6 | ||
|
Nouveau Membre du Club
![]() Inscription : mai 2007 Messages : 88 ![]() |
si je fais un truc comme ça:
Code :
Rempacer dans le call l'appel avec la variable JAVA par son équivalent avec une variable de session MySQL me donne le résultat escompté. Je note aussi que .executeQuery() et .executeUpdate() donnent le même résultat, comportement dont je ne sais pas s'il est normal ou pas.... bref |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com