Sobald ich einigen meiner Abfragen Joins hinzugefügt habe, habe ich festgestellt, dass die Ausführung dieser Abfragen mehr Zeit in Anspruch nahm als die Ausführung mehrerer Abfragen.
Die Zeiten beinhalten das Laden von Seiten und wurden im Durchschnitt über 20 Seitenladungen ermittelt.
7-9 Abfragen ohne Verknüpfungen
159ms
3 Abfragen mit 2 Joins
235ms
Sollte ich einfach mit mehreren Abfragen anstelle der Verknüpfungen gehen, wenn man bedenkt, dass sie anscheinend eine so erhebliche Auswirkung auf die Leistung haben? Ich kann wahrscheinlich sogar optimieren die mehrere Abfrage-Methode, da ich sogar faul Laden während dieser Tests war.
EDIT
Ich werde der Frage zuliebe einige falsche Angaben machen.
Tabelle Objekte
ID (int, Identität, PK, geclusterter Index)
UserID (int, nicht geclusterter Index)
CategoryID (int, nicht geclusterter Index)
Tabelle Benutzer
ID (int, Identität, PK, geclusterter Index)
Tabelle Kategorien
ID (int, Identität, PK, geclusterter Index)
Ziemlich einfach. Es ist eine doppelte Inner-Join-Abfrage auf die Tabelle "Objects". Die Abfrage aller 3 separat scheint schneller zu sein als die Verknüpfung.
Der Abfrageplan für die Verknüpfung zeigt, dass 42 % für 2 geclusterte Indexabfragen und 23 % für einen geclusterten Index-Scan und der Rest für eine Top-N-Sortierung verwendet werden.