Und zwar möchte ich von einer Tabelle Sätze löschen, die bestimmten Kriterien entspricht, wie im nachfolgenden Delete gezeigt. Die Felder entsprechen jedoch leider nicht den Keyfeldern.
DELETE FROM ztable WHERE field1 = 'X'
AND field2 = 'Y'.
Gibt es hierfür eine bessere Lösung? Die Tabelle in eine interne zu lesen, zu sortieren und dann über den Schlüssel zu löschen, erscheint mir eher weniger performant. Zumal die Tabelle auch relativ klein bleiben sollte mit < 20.000 Einträgen.
Das ist generell so: Wenn man auf eine Datenbanktabelle zugreift und keinen Index für den Zugriff hat, ist es nicht performant. Da muss man dann halt abwägen, ob der Einsatzzweck es rechtfertigt, dafür einen zusätzlichen Tabellenindex anzulegen oder ob man bei dem einen speziellen Zugriff damit lebt, dass die Datenbank durch alle Tabelleneinträge rasen und schauen muss, welche die betroffenen sind.