Vielzahl an Objekten löschen größer 200.000

  • Moin, ich hätte eine relative banale Frage.

    Ich habe diverse Kunden mit sehr sehr großen Objekttabellen größer 100.000 Objekte. Diese werden nach gewisser Zeit immer wieder einmal geleert. In den älteren webEdition Versionen konnte man auf Datei -> löschen -> Objekte klicken und den gesamten Ordner anklicken um alle darin enthaltenen Objekte zu löschen. Das klappte auch relativ gut, musste man teilweise 2-3 mal durchführen um wirklich alle zu löschen aber es lief sonst gut durch. Nun habe ich ab Versionen 8.x die Problemmatik, das es dort nicht mehr funktioniert. Gibt es sonst noch eine gute Möglichkeit viele Objekte auf einmal zu löschen? Wenn in auf dem Reiter Inhalt die Auswahl auf gößer 50.000 einstelle steigt webEdition aus.

    Über Input/Ideen, wäre ich dankbar.

  • Moin Moin,
    theoretisch könntest du das über eine PHP Funktion lösen.

    Einfach über einen LV IDs in ein Array laden und diese dann Stück für Stück abarbeiten.

    Könntest du dann noch mit einem Cron kombinieren.

    Code
    public function delete(int $id) {
    $object = new we_contents_objectFile();
    $object->initByID($id);
    $object-> we_delete();
    }
  • Es kommt darauf an, wie du das umsetzt bzw. die zu löschenden Objekte filterst.

    Unter der Annahme, dass die ältesten Objekte zuerst gelöscht werden sollen, kannst du das ja die Listview auf z.B. 100 Objekte limitieren und das alle 5 Minuten ausführen lassen. Das funktioniert dann quasi wie ein Garbage Collector. Du musst natürlich sicherstellen, dass keine Objekte gelöscht werden die noch gebraucht werden.

    HTH,

    Sascha

  • Danke für den Input, wollte schon direkt über die Datenbank löschen, aber so ist es doch simpler. So funktioniert es, bei ca. 20.000 Objekten steigt er allerdings aus. Somit gehe ich dann jetzt in 20.000 Blöcke durch. Dankeschön!

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!