Wie kann ich in einer Grails-Anfrage zählen, wie viele SQL-Abfragen den Ruhezustand betreffen?

8

Ich muss eine Grails-Anwendung mit einer wirklich langsamen Anfrage debuggen. Ich habe SQL-Logging aber möchte die Menge der SQL-Abfragen sehen, ohne sie manuell zu zählen.

%Vor%

Damit eaxmple nach jeder Anfrage die folgende Zeile enthält (wobei x die Anzahl aller an den SQL-Server gestellten Abfragen ist):

[2012-10-04 13: 41: 45,049] [LoggingFilters] INFO - Anfrage beendet in 8296 ms und machte x SQL-Anweisungen

Nach etwas Googeln scheint das mit Grails nicht möglich zu sein, vielleicht könnte MySQL die Information liefern?

    
aarreoskari 04.10.2012, 09:47
quelle

4 Antworten

9

Sie können dies mithilfe von Filtern und Ruhezustandsstatistiken tun. Erstellen Sie die Klasse ExampleFilters.groovy im Ordner conf. Dies ist der Inhalt der Klasse:

%Vor%

Wenn Sie mehr über verschiedene Hibernate-Statistiken lesen möchten, lesen Sie diesen Artikel: Ссылка

Beachten Sie auch, dass es bei der Verwendung zu Leistungseinbußen kommt. Daher sollte es nur in der Entwicklungsumgebung verwendet werden.

    
MBozic 04.10.2012, 13:17
quelle
1

Haben Sie einige Low-Tech-Lösungen in Betracht gezogen, wie zum Beispiel die Ausgabe über wc -l ?

    
Ken Liu 04.10.2012 13:04
quelle
0

in Grails verwenden loggingSql

%Vor%

Sie werden feststellen, dass alle von Grails verwendeten SQL-Anweisungen protokolliert werden.

    
solaimuruganv 04.10.2012 09:59
quelle
0

Wie Burt Beckwith in seinem Blogbeitrag "Stuff I Learned Consulting" sagte: Ссылка

SQL-Protokollierung

Es gibt zwei Möglichkeiten, die SQL-Ausgabe von Abfragen anzuzeigen. Hinzufügen von logSql = true in DataSource.groovy und Konfigurieren von Log4j-Loggern. Der Ansatz von Log4j ist viel flexibler, da er nicht nur auf stdout gespeichert wird, sondern auch auf eine Datei oder einen anderen Appender geroutet und bequem aktiviert und deaktiviert werden kann. Aber es stellt sich heraus, dass es einfach ist, die logSql SQL-Konsolenprotokollierung umzuschalten. Rufen Sie einen Verweis auf die sessionFactory-Bean ab (z. B. mithilfe der Abhängigkeitsinjektion mit def sessionFactory), und aktivieren Sie sie mit

%Vor%     
Roberto Perez Alcolea 04.10.2012 16:19
quelle

Tags und Links