Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Geschwindigkeit verbessern?

Begonnen von damate, Juli 15, 2012, 17:59:58

⏪ vorheriges - nächstes ⏩

damate

Hallo zusammen,

ich habe folgende Abfrage erstellt:

SELECT Name
FROM Beteiligungen
WHERE ID IN
(
   SELECT ToID FROM VerwBeteiligungen
   WHERE UniqueFromId IN
   (
       SELECT UniqueID FROM VerwKunden
   WHERE BeteiligungenID = u2.ID

)
) AND Beteiligungen.Art = (Select ID FROM BeteiligungenArt WHERE ART = "Lohn und Gehalt") Order by Name DESC;


Für mich ist diese SQL-Abfrage recht simpel.. nur, dauert diese recht lang für die Ausfürhung (mehrere Sekunden)!
Wenn ich die Zeilen
   SELECT UniqueID FROM VerwKunden
   WHERE BeteiligungenID = u2.ID

nun durch ein
   SELECT UniqueID FROM VerwKunden
   WHERE BeteiligungenID IN
              (Select ID FROM .... )

ersetze, dauert die Abfrage je nach Anzahl der IDs noch länger (Anzahl variert hierbei um die 200.

Leider wird diese Abfrage recht oft ausgeführt, sodass sich dies dann schnell auf 3 Stunden summiert.

Gibt es eine Möglichkeit diese Abfrage schneller zu realisieren?

PS: Diese Abfrage ist ein Recordsource in einem Bericht. Also dauert es demnach 3 Stunden bis so ein Bericht fertig ist.. und beim Programmieren des Berichts ist sowas auch recht nervig.

Ich hoffe, das mir jemand helfen kann.
Einen schönen Sonntag euch allen =)

EDIT: Auf die verwendeten Spalten wurden Indizes erstellt aber es hat nix gebracht.

ebs17

Du könntest (und solltest) Deine Tabellen per JOIN's miteinander verknüpfen.
Die von Dir gewählte Verschachtelung von Unterabfragen ist eher ungewöhnlich, und wenn Unterabfragen wiederholt ausgeführt werden müssen, summiert sich das halt.

MfGA
ebs
Mit freundlichem Glück Auf!

Eberhard