J'ai enfin trouvé un moyen simple de tracer et de chronométrer les appels JDBC d'une appli: P6Spy. C'est un petit Jar qui implémente un proxy JDBC, ce qui permet d'intercepter toutes les requêtes et de les logger. Il peut être mis en oeuvre sans aucune modification du code de l'appli. L'installation est simple:
- Télécharger le Zip et extraire le Jar
- L'ajouter dans le Classpath (genre le mettre dans WEB-INF/lib)
- Mettre le spy.properties au même endroit.
- Par défaut le proxy fera passer les requêtes aux drivers JDBC Oracle; modifier éventuellement le .properties pour appeler votre driver préféré (genre org.gjt.mm.mysql.Driver)
Et hop, P6Spy génère une trace spy.log avec toutes les requêtes SQL et leurs temps d'exécution.
Un bon article chez O'Reilly qui détaille la méthode utilisée ainsi qu'un exemple d'implémentation.