Performance 为什么我的SPARQL端点太慢?

Performance 为什么我的SPARQL端点太慢?,performance,rdf,sparql,dbpedia,Performance,Rdf,Sparql,Dbpedia,我使用D2R服务器对我的数据库进行Rdfize,该数据库大约保存了130万条记录。转换过程中一切都很顺利,但SPARQL端点的速度非常慢,大多数情况下会出现500个未知错误。我正在寻找任何解决方案,可以加快查询执行过程。我有一个例子,使用dbpediasnorql检查,当我查询时,它会在几秒钟内给出结果。但是,当我尝试在端点中运行相同类型的查询时,它会很晚生成结果,而且大多数时候都没有错误(Java堆类型或500未知)。 dbpediasnorql . 请尝试此查询 选择计数(*),其中{s?

我使用D2R服务器对我的数据库进行Rdfize,该数据库大约保存了130万条记录。转换过程中一切都很顺利,但SPARQL端点的速度非常慢,大多数情况下会出现500个未知错误。我正在寻找任何解决方案,可以加快查询执行过程。我有一个例子,使用dbpediasnorql检查,当我查询时,它会在几秒钟内给出结果。但是,当我尝试在端点中运行相同类型的查询时,它会很晚生成结果,而且大多数时候都没有错误(Java堆类型或500未知)。 dbpediasnorql . 请尝试此查询

选择计数(*),其中{s?p?o}

我的snorql

如有任何意见/建议,将不胜感激。 另外,我的服务器中有大约42 GB的RAM,所以内存应该不是问题。
谢谢,原因是您正在使用D2R。如果执行的查询匹配每个可能的三元组,这意味着必须解析所有映射。这会导致大量SQL(或您正在使用的任何关系数据库)查询

有两种可能的解决方案:

仅执行特定查询和使用限制:

SELECT ?s ?p ?o WHERE {
  ?s ?p ?o
} LIMIT 10

SELECT ?s WHERE {
  ?s a uysie:DocumentFigures
} LIMIT 100

或者使用d2r rdf转储工具,将结果放入rdf存储

如果这不是输入错误,并且您确实只有42M可用RAM,那么这可能是您的问题。那没有足够的内存来做很多事情。