SPARQL查询性能差

SPARQL查询性能差,sparql,jena,semantic-web,fuseki,Sparql,Jena,Semantic Web,Fuseki,上面是Sparql查询,我正在对数据集的fuseki端点运行,该端点有460万个三元组,但它运行了数小时,并且没有提供输出。但同样的查询在一个具有600k个三元组的数据集上运行良好,并在2-3分钟内抛出输出 有什么问题吗? 是否需要对查询进行任何优化? 或者搬到其他三联店? 或任何其他替代解决方案?中间选择似乎不是必需的,只需执行该模式即可。尝试将“select min”子查询移动到它所在的块的开头(将其放在“WHERE{”之后)。中间的select似乎没有必要,只需执行该模式。尝试将“sele

上面是Sparql查询,我正在对数据集的fuseki端点运行,该端点有460万个三元组,但它运行了数小时,并且没有提供输出。但同样的查询在一个具有600k个三元组的数据集上运行良好,并在2-3分钟内抛出输出

有什么问题吗? 是否需要对查询进行任何优化? 或者搬到其他三联店?
或任何其他替代解决方案?

中间选择似乎不是必需的,只需执行该模式即可。尝试将“select min”子查询移动到它所在的块的开头(将其放在“WHERE{”之后)。中间的select似乎没有必要,只需执行该模式。尝试将“select min”子查询移动到它所在的块的开头(将其放在“WHERE{”之后)。
select ?threadstarter  ?commenters (count(?postid) as ?postcount)
where
{
?subject1 bt:ThreadId ?threadid .
?subject1 bt:PostId ?postid .
?subject1 bt:UserUserId ?commenters .
  {
    select ?threadid ?threadstarter
    where
    {
      ?subject1 bt:PostId ?firstpost .
      ?subject1 bt:UserUserId ?threadstarter .
      ?subject1 bt:ThreadId ?threadid 
      {
      select ?threadid (min(?postid) as ?firstpost) 
      where
        {
          ?subject bt:ThreadId ?threadid .
          ?subject bt:PostId ?postid .
        }
      group by ?threadid
      }
    }
  }
}
group by ?threadstarter ?commenters
order by ?threadstarter