Chronik löschen dauert Ewigkeiten...

  • Habe eben in FF27 versucht unter Einstellungen->kürzlich angelegte Chronik meine gesamte (Download)Chronik zu löschen(40Tsd Einträge). Nach einer Stunde! habe ich dieses Unterfangen wieder aufgegeben. Firefox scheint nach Bestätigen des Löschdialogs und Schließen des Einstellungsdialogs ganz normal weiter zuarbeiten, blockiert dann aber die UI und nichts geht mehr. Im Profile-Ordner wird ständig in die Datei places.sqlite-wal geschrieben ( war am Schluss >1GByte ). Anscheinend handelt es sich dabei um eine Art Rollback-Datei. Dieses Problem ist anscheinend schon uralt(Bug-Reports aus dem Jahre 2003/noch ohne sqlite), aber anscheinend sieht man das bei Mozilla nicht wirklich als Problem an.

    Nachdem ich übrigens Firefox abgeschossen hatte, waren alle Chronik-Einträge weg und nach Neustart auch die Riesen-Rollback-Datei gelöscht. Aber eine saubere Lösung ist das sicher nicht :(

    Meine Frage: Kennt jemand eine saubere Möglichkeit, seinen gesamten Verlauf zu löschen? Ich möchte dies nach einer gewissen Zeit manuell anstoßen, also nicht die Einträge nach jedem Beenden löschen oder die Anzahl der Einträge begrenzen lassen.

    Vielen Dank...

    Gruß
    JeffWood

  • Zitat von Bernd.

    Ich dachte, du wüsstest endlich...

    Was ist das wieder für ein blöder Spruch?! Wenn du nichts zu sagen hast, dann antworte mir bitte auch nicht. Danke!

    Ich habe das Gefühl, dass manche Leute keine Hilfe anbieten wollen(können), sondern hier ihr Ego aufpolieren müssen, was ich jetzt besser nicht weiter hinterfrage...

    Gruß
    JeffWood

  • Frage mich, warum User wie "Bernd" hier Narrenfreiheit haben und im Kasernenhofton ständig andere User angehen dürfen?! Er hat ja schon oft genug bewiesen, wie sehr er sich daneben benehmen kann. Es gibt hier so hilfsbereite, nette und vor allem kompetente User im Forum - warum man sich dann so jemanden wie "Bernd" leistet, der ständig den falschen Ton anschlägt und dieses Forum zum persönlichen Aggressionsabbau benutzt, verstehe ich nicht.

    Wie ich sehe, gibt es schon einen Thread in dem u.a "Bernd" thematisiert wird.

    https://www.camp-firefox.de/forum/viewtopi…103830&start=15


    Gruß
    JeffWood

  • welche Größe hat denn jetzt aktuell deine places.sqlite nach der missglückten Aktion?
    auf meinem Zweitrechner (älteres baujahr) hatte ich dasselbe Problem, Chronik gelöscht und er hat eine halbe Stunde rumgewerkelt und ist eingefrorn, FF- über den Taskmanager beendet, nach Neustart dann meine Lesezeichen gesichert, FF beendet und im Profilordner places.sqlite gelöscht.
    war die sauberste Lösung, zumindest für mich, die Datei wird ja automatisch wieder beim nächsten Neustart erstellt mit ihrer Standardgröße von 10MB.

  • Die hatte eine Größe von 70 MByte. Ich bin nicht ganz sicher, ob dies auch die Größe war, bevor ich den Löschversuch unternommen hatte, ich vermute aber schon. Nach dem Beenden des Prozesses waren zwar alle alle Chronik-Einträge aus der Liste gelöscht, aber ich denke, dass nur der Index gelöscht wurde, die eigentlichen Daten aber immer noch in der places.sqlite vorhanden waren. Habe dann auch die places.sqlite entfernt und Firefox neu gestartet.

    Du hast recht: Abgesehen von den Favicons, die weg waren, wohl leider momentan die beste Lösung.

    Frage mich bloß, warum dieses extrem langsame "Write-Ahead Logging"(places.sqlite-wal) umbedingt sein muss, wenn ich eh vorhabe, die gesamte Datenbank zu löschen? In einem anderen Forum habe ich gelesen, dass auf einem "Standard-PC" für 1000 Einträge ca. 5 Minuten benötigt werden(ich hätte also über 3h warten müssen). Das empfinde ich als absolut unakzeptabel, zumal das ganze auch noch den FF blockiert.

    Na ja, vielleicht kennt sich ja jemand besser mit SQLite aus und hat eine Erklärung oder bessere Lösung als die Datei zu löschen.

    Gruß
    JeffWood

  • Der "Fehler" ist bekannt, aber hat nur geringer Priorität.
    Das Problem ist, dass die Löschprozedur auf das Löschen von einigen wenigen Einträgen ausgerichtet ist. Eben das, was Firefox von selbst machen würde, wenn Einträge ein gewisses Alter bzw. die Verlaufschronik eine gewisse Anzahl von Einträgen hat.
    Wenn man aber, Hausnummer, 40.000 Einträge auf einmal manuell löschen will, dann liest das Programm alle 40.000 Einträge ein (oder was auch immer Firefox da macht, es dauert verhältnismäßig lange), löscht dann ein Bündel von 300 Einträge, liest die übrigen 39.700 Einträge ein, löscht dann wieder 300 Einträge etc.
    Wenn man selbst immer nur in 300er-Blöcken löscht, dauert es nicht so lange.

  • hurda:

    Ja so sieht es aus. Es wird anscheinend mit einer DELETE-Anweisung jede Zeile einzeln entfernt und jedes Löschen dann im Transaktionsprotokoll protokolliert. Ich kenne SQLite nicht, aber so was wie TRUNCATE TABLE sollte es da doch auch geben. Dann dürfte das Löschen aller Zeilen in einer Tabelle wahrscheinlich im Millisekundenbereich liegen...

    Gruß
    JeffWood

  • Sofern kein Kriterium beim DELETE eingesetzt wird, läuft das bei SQLITE quasi als TRUNCATE. Allerdings können ja noch andere Einschränkungen (z.B. Trigger) vorliegen, die das TRUNCATE verhindern (TRUNCATE geht auch bei anderen DBMSs nicht, wenn z.B. Fremdschlüssel vorhanden sind o.ä.). S. dazu auch https://www.sqlite.org/lang_delete.html - ganz unten "The Truncate Optimization".

  • Schon klar, solange man nicht das Datenbank-Schema kennt, ist es eigentlich müßig darüber zu diskutieren, mit welcher Methode Transaktionen durchgeführt werden (können). Und selbst wenn man diese Infos hat, würde es trotzdem darauf hinauslaufen, auf eine "Optimierung" seitens der FF-Entwickler zu warten. Genug Bug-Reports gibt es ja anscheinend schon dazu... :|

    Gruß
    JeffWood