Michael Schröpl: aufräumen inkonsistenter DB

Beitrag lesen

Hi Heiko,

ich kenne die SQL-Einbindung in ASP nicht - aber wenn Du lediglich Datensätze löschen willst, reicht Dir doch das DELETE mit passender WHERE-Klausel - wozu brauchst Du das SELECT?

rs2.Open "SELECT * FROM profil WHERE userID=" & rs.Fields("UserID").value , cn

Das hier produziert einen Haufen Daten, die an Dein ASP-Skript übertragen werden, in welchem ich aber keinerlei Weiterverarbeitung erkennen kann. (Das kann den Server ggf. so heftig belasten, daß er Dein Skript abschießt.)

cn.execute "DELETE FROM user WHERE userID=" & rs.Fields("userID").value)

Und das hier alleine hätte meiner Meinung nach ausreichen müssen.
Wie groß sind denn Deine Datenmengen so? Vielleicht schaffst Du das Löschen gar nicht in einem Arbeitsgang (bedenke, daß Indexbäume angepaßt werden müssen etc.!) und solltest es in mehrere Teilschritte zerlegen.

Falls Du überhaupt die Tabelle nur leer haben willst (so ganz habe ich Dein ASP nicht verstanden), ist DELETE übrigens _ganz_ schlecht (wegen der ungeheuerlich vielen Schreibzugriffe).
Viele Datenbanken haben eine explizite Anweisung zum schnellen Leeren einer Tabelle (TRUNCATE oder Ähnliches); ersatzweise wäre auch DROP TABLE und Neu-Anlegen deutlich performanter.

Viele Grüße
      Michael