Our internal RDR benchmark revealed some potential for optimizing RDR query planning, in particular concerning the join order. As an example, take RDR query Q3:
The plan shows that query evaluation starts with evaluating the simple pattern ??from wd:P247r ?reference?, with the FILTER attached, which seems to take up most of the time (actually, wd:Q5375741 should be inlined here, which would lead to a significant speedup I?d say, but that?s an orthogonal issue). For the SP version of the query (which is ~5x faster):
the evaluation plan starts with evaluating wd:Q42 ?sProp ?value, which seems to be superior/more selective.
Similiar observations hold for other queries. The repeating pattern is that, in the RDR approach, non-reified patterns seem to be evaluated earlier than any reified patterns ? and this is not always the best approach. I?d guess this boils down to the join order optimizer.