Hallo,
ich habe folgende JPA-Entity:
Nun speichere ich davon z.B. 100 Einträge in der Datenbank, wobei jeder Eintrag 3 MB groß ist. Wenn ich jetzt eine Abfrage auf die Datenbank mache
, werden wie erwartet 100 Einträge angezeigt und die Datenbank belegt ca. 300 MB im Dateisystem.
Jetzt lösche ich alle Einträge wieder aus der Datenbank, indem ich für jeden Eintrag
aufrufe.
Die gleiche SQL-Abfrage liefert nun zurück, dass die Tabelle leer ist. Die Datenbank belegt jedoch immer noch 300 MB im Dateisystem! Was läuft hier falsch? Wenn ich wieder 100 neue hinzufüge wächst die Datenbank sogar auf 600 MB und so weiter...
Erst durch ein DROP der Tabelle wird der Speicherplatz wieder freigegeben.
Ausprobiert hab ich das mit der JavaDB und Oracle XE, jeweils mit EclipseLink.
Vielen Dank für die Antworten!
ich habe folgende JPA-Entity:
Java:
@Entity
public class Test implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Lob
public byte[] data;
}
Nun speichere ich davon z.B. 100 Einträge in der Datenbank, wobei jeder Eintrag 3 MB groß ist. Wenn ich jetzt eine Abfrage auf die Datenbank mache
Code:
(SELECT x FROM Test x)
Jetzt lösche ich alle Einträge wieder aus der Datenbank, indem ich für jeden Eintrag
Code:
entityManager.remove(test)
Die gleiche SQL-Abfrage liefert nun zurück, dass die Tabelle leer ist. Die Datenbank belegt jedoch immer noch 300 MB im Dateisystem! Was läuft hier falsch? Wenn ich wieder 100 neue hinzufüge wächst die Datenbank sogar auf 600 MB und so weiter...
Erst durch ein DROP der Tabelle wird der Speicherplatz wieder freigegeben.
Ausprobiert hab ich das mit der JavaDB und Oracle XE, jeweils mit EclipseLink.
Vielen Dank für die Antworten!