Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/05/2011, 09h27   #1
Membre régulier
 
Avatar de Gaetch
 
Homme
Inscription : juillet 2007
Messages : 419
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2007
Messages : 419
Points : 91
Points : 91
Par défaut Performance procédure stockée ?

Bonjour,

j'aimerais savoir quelles sont les performances d'une procédure stockée. J'ai un collègue qui me dit que les procédures stockées doivent être re-compilées à chaque appel et que donc ça nuit aux performances. Est-ce vrai ?
Gaetch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 05h20   #2
Membre Expert
 
Homme Eric Dureuil
Développeur informatique
Inscription : avril 2011
Messages : 843
Détails du profil
Informations personnelles :
Nom : Homme Eric Dureuil
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2011
Messages : 843
Points : 1 318
Points : 1 318
salut,

pour mysql c'est pas très bien documenté, je t'avoue...
en pratique le create procedure/function stocke le code dans une table de information_schema qui s'appelle routines...
il est for probable qu'une version compilé soit stocké sous forme binaire ou de pseudo code compilé (style java) puisque le create génère une compilation...

Dans l'absolu, l'appel à call limité la bande passante utilisée pour exécuter l'ensemble des actions voulues... donc au niveau des appels tu y gagnes forcément...

En gros, le gain en performance dépend aussi du paramétrage de ton serveur... si tu as un mutu avec peu de mémoire pour mysql alors tu peux en souffrir mais ce serait pareil en fait avec des allers et retours entre application et bd (voir pire)

Personnellement, à architecture égale, en comparant la version aller/retours classiques et la génération intégrale de xhtml coté mysql je gagne entre 30 et 50%... selon les page en pure procédures stockées...
La seule vrai limite c'est les 255 niveaux de récursion et que certains traitement sont pas faisable de manière du tout ou efficacement avec mysql (genre les remplacement à base de regex ^^ )...

Là où il a plus raison c'est sur les fonctions stockées, car selon leur placement dans une requêtes, elles peuvent engendrer des pertes drastiques de performances... tu pourras jamais reproduire l'équivalent d'un code compilé style c/c++

Au final, c'est donc plus l'utilisation qui, si elle est pas adaptée à ton système et à ce que sait bien faire mysql, va être à l'origine de perte de performances...
ericd69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h40.


 
 
 
 
Partenaires

Hébergement Web