Hallo zusammen, ich versuche eine Querey zu optimieren,
welche eigentlich nur eine Abfrage über 2 Tabellen macht.
Irgendwie bringe ich einfach keine schnelle Abfrage hin.
Fogende Situation:
(Es handelt sich in wirklichkeit natürlich um Andere Spalten, aber der Einfachheit halber habe ich diese mal umbenennt)
Tabelle A hat ca. 5'000 Einträge und die Spalten:
ID (PK)
Name
Vorname
Tabelle B hat ca. 10'000 Einträge und die Spalten:
ID (PK)
A_ID (FK)
Tel Nr
Art
Ich will mir nun alle Namen und Vornamen aus der Tabelle A anzeigen lassen,
welche in der Tabelle B einen in der Spalte Art einen Eintrag "Privat" haben.
Dies allerdings nur einmal, auch wenn eine Person mehrere Private Tel.Nr hätte.
Welches Query wäre dafür am geeignetsten?
Ich habe es mal wie auf folgende Arten versucht, jedoch dauerte die Ausführung fast 30 Sekunden, was ich als deutlich zu lange ansehe:
Was könnte man an der Query denn schrauben, damit diese schneller wird?
welche eigentlich nur eine Abfrage über 2 Tabellen macht.
Irgendwie bringe ich einfach keine schnelle Abfrage hin.
Fogende Situation:
(Es handelt sich in wirklichkeit natürlich um Andere Spalten, aber der Einfachheit halber habe ich diese mal umbenennt)
Tabelle A hat ca. 5'000 Einträge und die Spalten:
ID (PK)
Name
Vorname
Tabelle B hat ca. 10'000 Einträge und die Spalten:
ID (PK)
A_ID (FK)
Tel Nr
Art
Ich will mir nun alle Namen und Vornamen aus der Tabelle A anzeigen lassen,
welche in der Tabelle B einen in der Spalte Art einen Eintrag "Privat" haben.
Dies allerdings nur einmal, auch wenn eine Person mehrere Private Tel.Nr hätte.
Welches Query wäre dafür am geeignetsten?
Ich habe es mal wie auf folgende Arten versucht, jedoch dauerte die Ausführung fast 30 Sekunden, was ich als deutlich zu lange ansehe:
Code:
SELECT Name, Vorname
FROM A
WHERE ID IN
(SELECT A_ID
FROM B
WHERE Art LIKE 'Privat')
Code:
SELECT DISTINCT Name, Vorname
FROM A INNER JOIN B ON A.ID = B.A_ID
WHERE B.Art LIKE 'Privat'
Was könnte man an der Query denn schrauben, damit diese schneller wird?