我正在使用一个简单的Jena数据集,它只导入了一个〜30 MB的RDF文件。作为应用程序的一部分,我试图让用户查询默认图(或命名图),并将查询结果中的三元组插入到新的命名图中。为此,我使用CONSTRUCT语句形成RDF形式的三元组结果集,然后将这些三元组放入新模型(使用QueryExecution.execConstruct())并将此模型添加到数据集中。这似乎再次起作用,因为数据集获取新的图形节点,并且TDB数据库文件夹的磁盘大小增大。如何减小TDB支持的耶拿数据集的大小?
当我尝试从数据集中删除一个指定图形时,出现这个问题。使用数据集的removeNamedName(“graphName”)方法,我从数据集中删除模型。未来对该型号名称的查询显示它已成功删除。但是,即使在同步和退出之后,TDB数据库文件夹的磁盘大小仍保持相同大小。
起初我以为数据库可能只是将已删除文件的空间标记为空白,以便可以在新数据进入时将其覆盖,但似乎并非如此。如果我删除一个命名图并在同一程序运行后立即替换它,该文件夹似乎不会增长,但如果我添加一个新命名图并在同一运行中删除它,则文件夹大小会变大,并且模型删除不会释放内存,这意味着在几次运行后,数据库文件夹是其原始大小的五倍或十倍,而不需要保留更多数据。
任何洞察力或帮助将是伟大的,再次感谢。
非常感谢!我一定会检查邮件列表,这是一个耻辱,删除不一定会减少表的大小,但它是可以理解的。再次感谢。 – paul