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