在我的應用程序中,我使用的是SPARQL數據庫是Jena的SDB,而數據庫服務器是DB2。但我發現SPARQL的查詢性能非常低。如何提高SDB的SPARQL查詢性能?
誰能幫我解決這個問題?如何提高sparql查詢性能,特別是SDB的查詢性能?
下面是我的測試用例數據和SPARQL:
測試用例:
總RDF三元計數13294.查詢結果三重計數是420 查詢花費42秒。
的SPARQL是:
SELECT DISTINCT ?s ?name ?ownerId ?status ?time
?value ?startTime ?endTime ?description
WHERE
{
?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> "http://www.w3c.com/schemas/cp#Event" .
?s <http://www.w3c.com/schemas/cp#time> ?time .
?s <http://www.w3c.com/schemas/cp#ownerId> ?ownerId .
?s <http://www.w3c.com/schemas/cp#name> ?name .
?s <http://www.w3c.com/schemas/cp#value> ?value .
?s <http://www.w3c.com/schemas/cp#_status> ?status .
?s <http://www.w3c.com/schemas/cp#start_Time> ?startTime .
?s <http://www.w3c.com/schemas/cp#end_Time> ?endTime .
?s <http://www.w3c.com/schemas/cp#description> ?description .
FILTER(xsd:dateTime(?time) >= "2011-08-12T00:00:00"^^xsd:dateTime
&& xsd:dateTime(?time) <= "2011-09-18T23:59:59"^^xsd:dateTime)
}
忘了補充一點,它可能總是值得在[email protected]郵件列表上尋求幫助 – RobV
絕對正確 - 在過濾之前返回的數據可能會得到相當大的比例如果時區正常化,則可以嘗試簡單的字符串比較('str(?time)> =「2011-08-12T00:00:00」')。 – user205512
@ use205512好主意,雖然不知道是否使它成爲一個過濾器,但SDB會下載到SQL,雖然我希望它可以 – RobV