我试图完成某项工作,但我遇到了性能问题。
我有商店和产品。产品通过以下方式链接到商店:inStore谓词。这里的主要目的是从每个匹配的商店获得5个产品,总共限制75个产品。订单应该是最近的距离和最高的价格。这是我的疑问:
SELECT ?store ?productID ?distance ?price {
{
SELECT ?store ?distance {
?store omgeo:nearby(51.5125591000 -0.1248754000 '100km') .
?store geo-pos:lat ?latBase .
?store geo-pos:long ?longBase .
BIND (omgeo:distance(51.5125591000, -0.1248754000, ?latBase, ?longBase) AS ?distance)
} ORDER BY (?distance)
}
OPTIONAL {
{
SELECT ?productID ?price {
{
SELECT ?productID {
?productID :inStore ?store .
}
}
?productID :price ?price .
} ORDER BY DESC(?price) LIMIT 5
}
}
FILTER (BOUND(?productID))
} LIMIT 75
这里的问题是,在功能非常强大的服务器上,这种速度极慢。有什么建议吗?