Stell dir vor, du hast zwei Tabellen, die in einer 1:n-Relation miteinander verbunden sind. Nehmen wir als Beispiel die Bestellungen und die Bestellpositionen. Jeweils eine Bestellung hat mehrere Bestellpositionen.
Wenn du jetzt eine Anwendung bauen musst, die sowohl eine Liste mit Bestellungen durchläuft, zu jeder Bestellung aber auch noch die Bestellpositionen abklappert, kommst du bei ausreichend Datenmenge ziemlich schnell an die Leistungsgrenzen deiner Programmiersprache.
Das Problem: Wahrscheinlich implementierst du einfach zwei verschachtelte Schleifen. In der äußeren Schleife durchläufst du die Bestellungen, in der inneren Schleife durchläufst du die Bestellpositionen. Dabei benötigst du für die erste Schleife genau EINEN SQL-Query-Aufruf, um die Bestellungen aufzulisten. Für die Bestellpositionen wird jedoch JE BESTELLUNG EIN SQL-Query-Aufruf für alle Positionen einer Bestellung aufgerufen.
SQL Queries in Schleifen sind IMMER eine Dumme Idee. Jeder SELECT-Aufruf ist in der Lage, mehrere Ergebnisse zurückzuliefern, also nutze das, um ALLE Ergebnisse mit einer Query zu erlangen.
Willst du weitere solche Tipps zur Optimierung erlernen? Dann abonniere doch einfach diesen Podcast.