Einzelnen Beitrag anzeigen

Monday

Registriert seit: 24. Aug 2012
103 Beiträge
 
FreePascal / Lazarus
 
#1

SQLite 3 Out of Memory

  Alt 19. Mai 2020, 23:02
Datenbank: SQLite • Version: 3 • Zugriff über: Zeos
Hallo,

ich möchte den Speicherplatz eine Datenbank verkleinern. Ich nutze dafür "vacuum;" Dieser bricht dann mit der Meldung "Out of Memory" ab.
Die DB ist ca. 1 GB groß. Tatsächlich sollte sie aber kleiner sein, da ich eine große Tabelle gelöscht habe. Nach dem Löschen der Tabelle ist die Datei nicht kleiner geworden.

Offenbar schreibt die DB temporär die DB neu (vacuum). So habe ich es beobachten können. Und zwar in Laufwerk C.

Die Datenbank liegt auf Laufwerk D (mehrere GB frei). Auf Laufwerk C habe ich fast keinen freien Speicherplatz mehr (ein paar Hundert). Sodass ein neuerstellen auf Laufwerk C nicht geht und "Out of Memory" zwangsläufig kommen muss.

Wie kann ich den Speicherplatz trotzdem verkleinern? Also die SQL Datei.

Würde er die DB temporär auf Laufwerk D machen, wäre das kein Problem. Da könnte er das 10 mal machen. Wie kann ich ihn dazu bewegen?

Windows 7
SQlite 3
NTFS


Ursprünglich wollte ich bei einer Tabelle Indizes anlegen. Aber hier meldet er auch Out of Memory. Ob er das über den Arbeitsspeicher macht oder auch über das Laufwerk, konnte ich nicht herausfinden. Arbeitsspeicher habe ich 16 GB, dass sollte eigentlich auch reichen. Daher verstehe ich nciht ganz wo es hängt. Deshalb wollte ich die SQL Datei erstmal verkleinern; Falls Windows, Dateisysten o.ä. Größenbegrenzungen hat?!.
Daher auch hier die Frage, wie kann ich ihn bewegen Indizes anzulegen? Das Laufwerk auf das die DB liegt, dort ist sind noch mehrere GB frei. Wo soll "out of memory" den sein?!


LG
Monday
  Mit Zitat antworten Zitat