Pracuję z prostym zbiorem danych Jeny, do którego importowany jest tylko jeden plik RDF o wielkości ~ 30 MB. W ramach aplikacji staram się umożliwić użytkownikom zapytanie do domyślnego wykresu (lub nazwanego wykresu) i wstawienie wynikowych triów z zapytania do nowego nazwanego wykresu. W tym celu używam instrukcji CONSTRUCT, aby utworzyć zestaw wyników potrójnych w postaci RDF, a następnie umieścić te trójki w nowym modelu (za pomocą QueryExecution.execConstruct()) i dodać ten model do zestawu danych. Wygląda na to, że działa ponownie, ponieważ zestaw danych otrzymuje nowy węzeł wykresu, a rozmiar dysku w folderze bazy danych TDB zwiększa się.Jak zmniejszyć rozmiar baz danych Jena bazujących na TDB?
Problem pojawia się tutaj, gdy próbuję usunąć nazwany wykres z zestawu danych. Za pomocą metody removeNamedName ("graphName") obiektu Dataset usuwam model z zestawu danych. Przyszłe zapytania dotyczące tej nazwy modelu wskazują, że został on pomyślnie usunięty. Rozmiar dysku w folderze bazy danych TDB pozostaje jednak taki sam, nawet po zakończeniu synchronizacji i zamknięciu.
Początkowo pomyślałem, że być może baza danych właśnie oznaczała wolne pliki, tak aby można je było zastąpić, gdy pojawiły się nowe dane, ale nie wydaje się, żeby tak było. Jeśli usuniemy nazwany wykres i zastąpię go natychmiast po tym samym uruchomieniu programu, folder nie będzie się powiększał, ale jeśli dodaję nowy nazwany wykres i usuniemy go w tym samym przebiegu, rozmiar folderu zwiększy się, a model zostanie powiększony. usunięcie nie zwalnia pamięci, co oznacza, że po kilku uruchomieniach folder bazy danych ma pięcio- lub dziesięciokrotny rozmiar pierwotny, nie przechowując więcej danych.
Każdy wgląd lub pomoc byłaby wspaniała, jeszcze raz dziękuję.
Wielkie dzięki!Zdecydowanie sprawdzę listę mailingową, szkoda, że usunięcie niekoniecznie zmniejsza rozmiar tabeli, ale jest zrozumiałe. Dzięki jeszcze raz. – paul