我正在使用一個簡單的Jena數據集,它只導入了一個〜30 MB的RDF文件。作爲應用程序的一部分,我試圖讓用戶查詢默認圖(或命名圖),並將查詢結果中的三元組插入到新的命名圖中。爲此,我使用CONSTRUCT語句形成RDF形式的三元組結果集,然後將這些三元組放入新模型(使用QueryExecution.execConstruct())並將此模型添加到數據集中。這似乎再次起作用,因爲數據集獲取新的圖形節點,並且TDB數據庫文件夾的磁盤大小增大。如何減小TDB支持的耶拿數據集的大小?
當我嘗試從數據集中刪除一個指定圖形時,出現這個問題。使用數據集的removeNamedName(「graphName」)方法,我從數據集中刪除模型。未來對該型號名稱的查詢顯示它已成功刪除。但是,即使在同步和退出之後,TDB數據庫文件夾的磁盤大小仍保持相同大小。
起初我以爲數據庫可能只是將已刪除文件的空間標記爲空白,以便可以在新數據進入時將其覆蓋,但似乎並非如此。如果我刪除一個命名圖並在同一程序運行後立即替換它,該文件夾似乎不會增長,但如果我添加一個新命名圖並在同一運行中刪除它,則文件夾大小會變大,並且模型刪除不會釋放內存,這意味着在幾次運行後,數據庫文件夾是其原始大小的五倍或十倍,而不需要保留更多數據。
任何洞察力或幫助將是偉大的,再次感謝。
非常感謝!我一定會檢查郵件列表,這是一個恥辱,刪除不一定會減少表的大小,但它是可以理解的。再次感謝。 – paul