如果指定了更多对象值,则sparql将变慢
使用virtuoso 7开源版 下面的查询速度很快,它会立即返回结果如果指定了更多对象值,则sparql将变慢,sparql,virtuoso,triplestore,Sparql,Virtuoso,Triplestore,使用virtuoso 7开源版 下面的查询速度很快,它会立即返回结果 select * WHERE { graph <http://localhost:8890/graph> { ?catAtt qq:catId ?catId; qq:caDataType ?caDataType;
select *
WHERE {
graph <http://localhost:8890/graph> {
?catAtt qq:catId ?catId;
qq:caDataType ?caDataType;
qq:showInView ?showInview;
qq:valFormat ?valFormatKey;
qq:multiple ?multiple;
qq:position ?position;
qq:link ?link;
qq:catAttName ?catAttName;
qq:setting ?setting;
qq:flag ?flag;
qq:unit ?caUnit.
}
}
LIMIT 20
请参阅OpenLink社区论坛上对此问题的以下回应。。。在那里张贴所有进一步的问题……许多三联书店都使用排列索引。Virtuoso在默认情况下也启用了一些,但不是
GOP
:-尽管这种行为很奇怪,理论上第二个查询应该“更容易”。您可以“解释”查询,尽管很难理解非开发人员的调试输出。无论如何,Openlin邮件列表可能是一个更有希望的支持来源:实际上,您可以尝试添加另一个索引gops
——只需查看我上一篇文章第一个链接中的文档即可comment@UninformedUser您好,谢谢,我已经尝试创建索引,请参阅我的问题编辑,它现在减少到4秒,但仍然非常慢。我也这么认为,考虑到第二个查询更具体,但实际上速度较慢。我会试着在邮件列表上寻求帮助。顺便问一下,三元组是否存储在常规RDBMS表中?在表DB.DBA.RDF_QUAD中?所以virtuoso没有图形的本机存储?还是我不明白的?
select *
WHERE {
graph <http://localhost:8890/graph> {
?catAtt qq:catId 1;
qq:caDataType ?caDataType;
qq:showInView ?showInview;
qq:valFormat ?valFormatKey;
qq:multiple ?multiple;
qq:position ?position;
qq:link ?link;
qq:catAttName ?catAttName;
qq:setting ?setting;
qq:flag ?flag;
qq:unit ?caUnit.
}
}
LIMIT 20
CREATE COLUMN INDEX RDF_QUAD_GOPS
ON RDF_QUAD (G, O, P, S)
PARTITION (O VARCHAR (-1, 0hexffff));