|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Inscription : mars 2006 Messages : 72 ![]() |
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 |
|
|
00
|
|
|
#2 | ||||
|
Provisoirement toléré
Inscription : juin 2003 Messages : 2 622 ![]() |
Citation:
Citation:
Citation:
Citation:
__________________
Pensez au bouton
|
||||
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : mars 2006 Messages : 72 ![]() |
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] |
|
|
00
|
|
|
#4 |
|
Provisoirement toléré
Inscription : juin 2003 Messages : 2 622 ![]() |
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
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com