问题描述
我正在寻找优化以下查询的方法,目前该查询大约需要1m 20sec的时间,大约有213500个三元组。我正在寻找查询的任何优化建议
我知道Optional在这里花费了大部分时间,但是还有其他选择来获得相似的结果集吗?
我还在图片中附加了我们的资源映射
CONSTRUCT
{
?cref ?p ?o .
?o ?p1 ?o1 .
?o ?p2 ?o2 .
?o2 ?p3 ?o3 .
}
WHERE
{
{
SELECT disTINCT ?cref
WHERE {
{ ?cref xyz:hasSourceBrand xyz:abc .}
union
{ ?cref xyz:hasTargetBrand xyz:abc .}
VALUES ?o1 { "New" "Validated" }
?cref xyz:CrossReferenceStatus ?o1 .
}
}
?cref ?p ?o .
{
?cref ?p ?o .
}
UNION
{
?o a xyz:Part .
OPTIONAL { ?o ?p1 ?o1 .}
}
UNION
{
?o a xyz:CrossReferenceRelation .
OPTIONAL { ?o ?p2 ?o2 .}
OPTIONAL { ?o2 a xyz:author ;
?p3 ?o3 .
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)