Hallo zusammen,
kann mir jemand erklären wieso sich das so verhält bzw. was ich machen kann damit es sich nicht so verhält.
Folgendes Problem, ich schreibe kontinuierlich etwas in einen Blob rein.
Können schon mehrere tausend Male sein.
Das führt dazu, dass sich die Datenbank irgendwann extrem schnell aufbläht.
Nach dem Backup/Restore ist sie wieder deutlich kleiner.
Ich kenn diesen Effekt bei Firebird, wenn man immer wieder Delete/Insert macht, dann wird die Datenbank größer und größer und nach einem Backup/Restore ist sie wieder kleiner.
Aber wieso tritt der Effekt bei Update auf Blob-Fields auf?
Delphi-Quellcode:
// Verallgemeinert, aber so in etwa schreibe ich immer wieder in das Blobfeld
var lQuery := TUniQuery.Create(nil);
try
lQuery.Connection := GetConnection;
lQuery.SQL.Text := 'Select t.* from TEST t ' +
'Where t.ID = 1';
lQuery.Execute;
if not lQuery.IsEmpty then
begin
lQuery.Edit;
lQuery.FieldByName( 'BLOBTEST').AsString := lQuery.FieldByName( 'BLOBTEST').AsString + sLineBreak +
Now.toString + ';' + Random(100000).ToString + ';' + Random(100000).ToString;
lQuery.Post;
end;
finally
lQuery.Free;
end;