Client-Joins in Entity Framework Core
14.09.2020, 00:00 Uhr
Schneller, als die Datenbank erlaubt
Isoliert materialisierte Objekte im RAM zu verbinden kann schneller sein als eine JOIN-Operation in der Datenbank.
Auf die Idee zu dieser Ausgabe der Datenzugriffskolumne in der dotnetpro brachte mich ein Benutzer in den Foren auf www.heise.de. Benutzer schap23 schrieb dort einem Beitrag mit der Überschrift „Ein JOIN im Client ist nie schneller wie auf der Datenbank“ [1]. Darin behauptet er: „Wenn die Datenbank kein ernsthaftes Problem hat, ist die JOIN-Operation auf der Datenbank immer schneller, da die Datenbank darauf hochoptimiert ist und das Ergebnis weniger Daten enthält und daher schneller übertragen wird (IO ist gewöhnlich die teuerste Operation).“
Diese Aussage ist so pauschal nicht richtig. Zumindest gilt sie nicht für das objektrelationale Mapping mit Entity Framework Core, wie ich hier aufzeigen werde.
Jetzt 1 Monat kostenlos testen!
Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde.
- + Digitales Kundenkonto,
- + Zugriff auf das digitale Heft,
- + Zugang zum digitalen Heftarchiv,
- + Auf Wunsch: Weekly Newsletter,
- + Sämtliche Codebeispiele im digitalen Heftarchiv verfügbar