Extreme Veteran
Beiträge: 566
| Hallo,
svru - 07.01.17 16:15
das ist mir auch schleierhaft (Vielleicht weil es sich um verknüpfte Tabellen von Access2003 auf eine Access97-Datenbank handelt?).
Nein, daran liegt es nicht.
Bei Deinem Abfragevorschlag aber irritiert mich das
SELECT 'x'
Du kannst 'x' durch einen beliebigen Feldnamen aus Tabelle A ersetzen, auch durch *. Bei dem Konstrukt kommt es nur darauf an, ob NOT EXISTS, welches True oder False erwartet, bedient werden kann. Also, ob Daten gefunden werden oder nicht.
Was soll das sein oder darstellen? Übernehme ich ansonsten die Abfrage 1:1 für meinen Fall läuft sie sich tot - oder die Performance ist wirklich so schlecht, daß sie einfach nur zu lange braucht... :-(
Immerhin handelt es sich um 15 verwaiste Einträge von 1,6 Millionen Datensätzen...
Dann zeig mal das Original-Statement. Evtl. fehlen Indexes.
Naja, ich werd' jetzt dann wohl ein kleines VBA-Script schreiben müssen, nimmt meine Abfrage als normale Abfrage, geht sie Datensatz für Datensatz durch und löscht dann mit einer anderen Abfrage Datensatz für Datensatz... so wie es am Ende sein soll.
Das ist die letzte Lösung, die du in Betracht ziehen solltest. Vorher gäbe es noch den Zwischenschritt per Markierung der zu löschenden Datensätze:
UPDATE A SET Flag=1
UPDATE A INNER JOIN B ON A.ID=B.ID SET Flag=0
DELETE FROM A WHERE Flag=1
----- Gruss - Peter |