簡體   English   中英

如何通過控制查詢執行順序使Virtuoso上的SPARQL查詢更快?

[英]How to make SPARQL queries faster on Virtuoso by controlling query execution order?

我已經設置了一個Virtuoso服務器來托管Freebase數據( 版本07.20.3217,於2017年1月5日構建 ;非常感謝您可以嘗試一下 )。

讓我們考慮一下這種情況:查找威斯康星州州( fb:m.0824r )中最大的位置(可能是一個縣,用?var1表示),其中?var1包含至少一個位置(用?var2表示),類型為fb:place_with_neighborhoods

我編寫了SPARQL查詢,如下所示:

PREFIX fb: <http://rdf.freebase.com/ns/> 
SELECT DISTINCT ?var1 ?var2 ?v2_name WHERE {
             fb:m.0824r  fb:location.location.contains  ?var1 . 
             ?var1       fb:location.location.contains  ?var2 . 
             ?var2       fb:type.object.type            fb:location.place_with_neighborhoods . 
             ?var1       fb:location.location.area      ?area .
  OPTIONAL { ?var2       fb:type.object.name            ?v2_name } .
} ORDER BY DESC(?area) 
LIMIT 1

不幸的是,Virtuoso引擎無法返回查詢結果超過一個小時。

我嘗試了一些更簡單的查詢,這些查詢可能會在不到一秒鍾的時間內產生結果:

PREFIX fb: <http://rdf.freebase.com/ns/> 
SELECT DISTINCT ?var1 ?var2 ?v2_name WHERE {
             fb:m.0824r  fb:location.location.contains  ?var1 . 
             ?var1       fb:location.location.contains  ?var2 . 
             ?var2       fb:type.object.type            fb:location.place_with_neighborhoods . 
  OPTIONAL { ?var2       fb:type.object.name            ?v2_name } .    
}
# Remove the area-related information with ?var1
# Returns ONLY ONE result in 0.05s.

和,

PREFIX fb: <http://rdf.freebase.com/ns/> 
SELECT DISTINCT ?var1 ?var2 ?v2_name ?area WHERE {
             fb:m.0824r  fb:location.location.contains  ?var1 . 
             ?var1       fb:location.location.contains  ?var2 . 
             ?var1       fb:location.location.area      ?area .
  OPTIONAL { ?var2       fb:type.object.name            ?v2_name } .
}
# Remove the type limitation of ?var2
# Returns ~7000 results in ~1s.

鑒於這些簡單查詢的結果,我真的很困惑哪一步帶來了性能問題。 有誰可以給​​我一些建議嗎? 非常感謝!

正如您在項目中提出問題所指出的那樣-

當查詢的其余部分沒有解決方案時, OPTIONAL似乎存在查詢計划問題,因為僅從初始查詢中刪除該子句會使結果立即接近

刪除?var1 fb:location.location.area ?area模式(以及因此將ORDER BY DESC(?area)減少)的模式,這將使即時結果近似

Development會提出此問題進行分析。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM