0

我对 sparql 和 apache Jena 还很陌生,所以请原谅我的幼稚。我使用 TDB2 加载程序加载了 wikidata 转储 (705G),并从 Wikidata Query Service 执行了一些查询示例。与 Wikidata 查询服务相比,Jena 中的大多数查询需要更长的时间。我的机器配置了 750G 的 RAM 和 80 个 CPU。我的问题是:

  1. 为什么 Wikidata 服务比 Jena 更快?
  2. 如何在不重写查询的情况下提高查询性能?也许一些索引技术?还是特定的服务器配置?

我用 [Jena] 标签查找了所有 stackoverflow 问题,但没有找到任何相关信息。如果您可以提供除耶拿官方网站以外的教程或主题,那就太好了。

4

1 回答 1

0

您可以尝试使用下一代 TDB2(而不是 TDB1)。

tdb2.tdbloader --loc /path/to/tdb2/ /path/to/some.ttl

此外,默认情况下,构建这样的 TDB2 不会生成统计信息。您必须手动执行此操作。首先 cd 到您创建的 TDB2(按照上面的示例 /path/to/tdb2)并运行(在 bash 中):

tdb2.tdbstats --loc=`pwd` > /tmp/stats.opt
mv /tmp/stats.opt > /path/to/tdb2/Data-0001/

统计信息“指导优化器选择一个执行计划而不是另一个”,这可以帮助您获得更好的查询性能。 https://jena.apache.org/documentation/tdb/optimizer.html#running-tdbstats

于 2021-10-22T01:53:27.477 回答