| 

.NET C# Java Javascript Exception

N+1 SQL problem

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


N+1 SQL problem

mattes3 - 09.05.2009 00:26
Hallo,

habt Ihr schon mal erlebt, dass Hibernate ein SQL SELECT Statement für jedes(!) Element einer Collection erzeugt? Genau das soll doch vermieden werden, trotzdem passiert es gerade auf meiner Maschine, wenn ich auf Elemente einer n:m-Beziehung zugreife.

Bevor ich anfange, mühselig einen neutralen Testfall daraus zu extrahieren, die Frage: Kennt den Effekt schon jemand und weiß er/sie, was ich falsch mache? Oder ist das Ganze ein Bug in Grails 1.1?

Gruß
Matthias


Re: N+1 SQL problem

saurier - 09.05.2009 01:49
Kein Bug, sondern die Default-Einstellung. Such einfach mal nach
"fetchmode", "eager", "lazy".

Gruß, Christian


Re: N+1 SQL problem

mattes3 - 09.05.2009 09:05
Eager versus Lazy hatte ich anders verstanden: Wenn lazy, dann trotzdem nur ein SQL-Statement für die ganze Collection, doch halt nicht sofort, sondern erst beim ersten Zugriff auf ein Collection-Element. Ein SELECT pro(!) Element(!) der Collection ist ein Skandal, das sollte auf keinen Fall so sein, egal ob eager oder lazy. Wenn die Collection 100 Elemente hat, will ich keine 100 SELECTs.

Wie siehst Du das?


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "N+1 SQL problem" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.