나는 단지 ~ 30 MB의 RDF 파일을 가져온 간단한 Jena 데이터 세트로 작업하고 있습니다. 응용 프로그램의 일부로 사용자가 기본 그래프 (또는 명명 된 그래프)를 쿼리하고 쿼리의 결과 트리플을 새 명명 된 그래프에 삽입 할 수있게하려고합니다. 이를 위해 CONSTRUCT 문을 사용하여 RDF 형식의 결과 집합을 만든 다음 QueryExecution.execConstruct()를 사용하여 이러한 모델을 새 모델에 추가하고이 모델을 데이터 집합에 추가합니다. 이것은 데이터 집합이 새로운 그래프 노드를 얻고 TDB 데이터베이스 폴더의 디스크 크기가 커지면 다시 작동합니다.TDB가 지원하는 Jena Dataset의 크기를 줄이는 방법은 무엇입니까?
데이터 집합에서 명명 된 그래프를 제거하려고하면 여기에 문제가 발생합니다. 데이터 집합의 removeNamedName ("graphName") 메서드를 사용하여 데이터 집합에서 모델을 제거합니다. 해당 모델 이름에 대한 향후 쿼리는 성공적으로 제거되었음을 나타냅니다. 그러나 TDB 데이터베이스 폴더의 디스크 크기는 동기화 및 종료 후에도 동일하게 유지됩니다.
처음에는 데이터베이스가 삭제 된 파일의 공간을 무료로 표시하여 새 데이터가 들어올 때 덮어 쓸 수 있다고 생각했지만 처음에는 그렇지 않습니다. 명명 된 그래프를 삭제하고 같은 프로그램을 실행 한 직후에 대체하면 해당 폴더가 커지지 않는 것처럼 보입니다. 그러나 새 명명 된 그래프를 추가하고 동일한 그래프에서 삭제하면 폴더 크기가 커지고 모델이 커집니다 제거로 인해 메모리가 확보되지 않습니다. 즉, 몇 번 실행하면 데이터베이스 폴더가 더 이상 데이터를 보유하지 않고 원래 크기의 5 배 또는 10 배가됩니다.
어떤 통찰력이나 도움도 좋을 것입니다. 다시 감사드립니다.
감사합니다.메일 링리스트를 확실히 확인해 보겠습니다. 제거가 반드시 테이블 크기를 줄이지는 않지만 이해할 만하다. 다시 한번 감사드립니다. – paul