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 31/08/2006, 18h56   #1
Membre régulier
 
Avatar de jp_rennes
 
Inscription : mars 2006
Messages : 72
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : mars 2006
Messages : 72
Points : 83
Points : 83
Par défaut fichier de log mysql

J'ai activé les log dans mon my.cnf pour comprendre certaines lenteurs sur ma base de cinema (innodb). L'applicatif (en java + hibernate) utilise la techno des statements ou commandes préparées)

Par exemple voici un extrait du log :
/usr/sbin/mysqld, Version: 5.0.19-standard-log. started with:
Tcp port: 0 Unix socket: (null)
Time Id Command Argument
060831 18:28:33 2 Connect toto@192.168.1.1 on cinema
2 Query SET NAMES latin1
2 Query SET character_set_results = NULL
2 Query SHOW VARIABLES
060831 18:28:34 2 Query SHOW COLLATION
2 Query SET autocommit=1
2 Query SET autocommit=1
2 Query SET autocommit=1
2 Quit
3 Connect toto@192.168.1.1 on cinema
3 Query SET NAMES latin1
3 Query SET character_set_results = NULL
3 Query SHOW VARIABLES
3 Query SHOW COLLATION
3 Query SET autocommit=1
3 Query SET autocommit=1
3 Query SET autocommit=1
3 Query SET autocommit=1
060831 18:28:35 3 Prepare [1]
3 Execute [1] select film.* from Film film, Programmation prog, NouveauteSemaine1 nouv where film.idFilm = nouv.idFilm and film.idProjection = prog.idProjection and (prog.dateProgrammation >= (select date from HistoriqueProgrammation1)) group by film.idFilm order by film.poids DESC limit 3
3 Query SET autocommit=1
3 Query SET autocommit=1
3 Prepare [2]
3 Execute [2] select listemedia0_.idFilm as idFilm0_, listemedia0_.type as type0_, listemedia0_.url as url0_ from Media listemedia0_ where listemedia0_.idFilm=109651

Questions :
1) Est-ce normal qu'il y ait autant de auto_commit ? est-ce normal qu'il y en ai si on ne fait que de la lecture sur cette base( les mises à jours se font de nuit)
2) à quoi correspond les chiffres entre crochets
3) que signifie le prepare ?
je ne pense pas que se soit un prepare statement ... quand j'en ai fait un à la main et que je l'exécute, ça donne ceci
060831 18:34:31 4 Query prepare nono from 'select salle.* from Salle salle where salle.IG = ?'
060831 18:35:43 4 Query set @a='I#pLAAE00000'
060831 18:36:17 4 Query execute nono using @a
060831 18:41:22 4 Query deallocate prepare nono

Merci par avance
jp_rennes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2006, 09h27   #2
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Citation:
Envoyé par jp_rennes
1) Est-ce normal qu'il y ait autant de auto_commit ? est-ce normal qu'il y en ai si on ne fait que de la lecture sur cette base( les mises à jours se font de nuit)
Apparemment c'est une caractéristique d'hibernate : http://forum.springframework.org/sho...ysql+hibernate

Citation:
Envoyé par jp_rennes
2) à quoi correspond les chiffres entre crochets
Au numéro du prepared statement...

Citation:
Envoyé par jp_rennes
3) que signifie le prepare ?
Il correspond à l'étape de préparation de la requête.

Citation:
Envoyé par jp_rennes
je ne pense pas que se soit un prepare statement ... quand j'en ai fait un à la main et que je l'exécute, ça donne ceci
060831 18:34:31 4 Query prepare nono from 'select salle.* from Salle salle where salle.IG = ?'
060831 18:35:43 4 Query set @a='I#pLAAE00000'
060831 18:36:17 4 Query execute nono using @a
060831 18:41:22 4 Query deallocate prepare nono
Il doit y avoir une différence entre les commandes SQL PREPARE, EXECUTE... et les fonctions de prepared statements intégrées au protocole client/serveur de MySQL.
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2006, 10h57   #3
Membre régulier
 
Avatar de jp_rennes
 
Inscription : mars 2006
Messages : 72
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : mars 2006
Messages : 72
Points : 83
Points : 83
merci beaucoup... ça m'a fait avancer.
Il me reste quelques questions

extrait de mon fichier le log
3 Prepare [32]
3 Execute [32] select listereali0_.idFilm as idFilm1_, listereali0_.idRealisateur as idRealis2_1_, realisateu1_.idRealisateur as idRealis1_6_0_, realisateu1_.nom as nom6_0_, realisateu1_.url as url6_0_ from RealisePar listereali0_ left outer join Realisateur realisateu1_ on listereali0_.idRealisateur=realisateu1_.idRealisateur where listereali0_.idFilm=109000
3 Query SET autocommit=1
3 Query SET autocommit=1
3 Prepare [33]
3 Execute [33] select listeacteu0_.idFilm as idFilm1_, listeacteu0_.idActeur as idActeur1_, acteurimpl1_.idActeur as idActeur0_0_, acteurimpl1_.nom as nom0_0_, acteurimpl1_.url as url0_0_ from JoueDans listeacteu0_ left outer join Acteur acteurimpl1_ on listeacteu0_.idActeur=acteurimpl1_.idActeur where listeacteu0_.idFilm=109000
3 Query SET autocommit=1
3 Query SET autocommit=1
3 Prepare [34]
3 Execute [34] select listemedia0_.idFilm as idFilm0_, listemedia0_.type as type0_, listemedia0_.url as url0_ from Media listemedia0_ where listemedia0_.idFilm=36287
3 Query SET autocommit=1
3 Query SET autocommit=1
3 Prepare [35]
3 Execute [35] select listereali0_.idFilm as idFilm1_, listereali0_.idRealisateur as idRealis2_1_, realisateu1_.idRealisateur as idRealis1_6_0_, realisateu1_.nom as nom6_0_, realisateu1_.url as url6_0_ from RealisePar listereali0_ left outer join Realisateur realisateu1_ on listereali0_.idRealisateur=realisateu1_.idRealisateur where listereali0_.idFilm=36287

questions :
1) 3 Prepare [35] : Est-il possible de connaître la requête précise de création du statement (par exemple prepare stmt_name from 'select listereali0_.idFilm as idFilm1_, listereali0_.idRealisateur as idRealis2_1_, realisateu1_.idRealisateur as idRealis1_6_0_, realisateu1_.nom as nom6_0_, realisateu1_.url as url6_0_ from RealisePar listereali0_ left outer join Realisateur realisateu1_ on listereali0_.idRealisateur=realisateu1_.idRealisateur where listereali0_.idFilm=?' )
2) Ce qui me semble bizzare c'est que le [32] et [35] semblent identiques sauf pour le dernier champ de la requête( listereali0_.idFilm)
Pourquoi recréer un statement [35] plutôt que de rétuliser le [32]
jp_rennes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2006, 11h31   #4
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
1) On dirait bien que non.
2) Je ne sais pas, c'est sûrement Hibernate qui se fait ses petites bidouilles
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h34.


 
 
 
 
Partenaires

Hébergement Web