2013-10-30 4 views
2

나는 약 130 만 레코드를 보유하고있는 데이터베이스를 Rdfize하기 위해 D2R 서버를 사용했습니다. 모든 것이 변환에서 잘되었지만 SPARQL 끝점의 속도는 매우 느리고 대부분 500 개의 알 수없는 오류로 끝납니다. 쿼리 실행 프로세스 속도를 높일 수있는 솔루션을 찾고 있습니다. 내가 예제를 가지고 dbpedia snorql로 확인하면 쿼리가 나에게 몇 초 만에 결과를 준다. 그러나 종점에서 같은 종류의 쿼리를 실행하려고하면 결과가 매우 늦게 나오고 대부분의 경우 오류가 발생하지 않습니다 (Java 힙 유형 또는 500 개 알 수 없음). DBpedia snorql http://dbpedia.org/snorql. 이 쿼리를 {?의? P? O} http://cbakerlab.unbsj.ca:8080/liapibackup/snorql/SPARQL 엔드 포인트가 너무 느린 이유는 무엇입니까?

어떤 조언/제안

내 snorql은 높게 평가 될 것이다

SELECT COUNT (*)를보십시오. P.s 내 서버에는 약 42GB의 RAM이 있으므로 메모리가 문제가되지 않아야합니다. 감사합니다.

+1

을 결과를 넣어 :

만 특정 쿼리 및 사용 제한을 수행

는 두 가지 해결책이 있습니다 오타가 아니라 실제로 42M의 RAM 만 사용할 수 있습니다. 그러면 아마도 문제 일 것입니다. 그것은 많은 것을 할 수있는 충분한 기억이 아닙니다. – Michael

답변

2

이유는 D2R을 사용하고 있기 때문입니다. 가능한 모든 트리플과 일치하는 쿼리를 실행하면 모든 매핑을 확인해야한다는 의미입니다. 결과적으로 많은 SQL (또는 사용중인 관계 데이터베이스) 쿼리가 발생합니다.

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

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

또는 D2R의 RDF 덤프 도구를 사용하여 그리고 그 경우 RDF 저장소에

관련 문제