Replies: 1 comment 6 replies
-
I am a little confused about what you're proposing. The bindingsets to be excluded are internally cached (that's the |
Beta Was this translation helpful? Give feedback.
6 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
When executing long update queries that contains MINUS operator a performance issue is noticed, where such queries perform so poorly compared to running the same queries without the MINUS.
Here's one of the queries being executed (truncated with the MINUS part longer):
It could be that this operator to exclude the triples is not well optimized, by looking at the iterator SPARQLMinusIteration https://github.com/eclipse/rdf4j/blob/e3548a79f754361695283acf9fe752b37071c186/core/queryalgebra/evaluation/src/main/java/org/eclipse/rdf4j/query/algebra/evaluation/iterator/SPARQLMinusIteration.java#L81
It appears that for every given binding set there is a loop which in theory could be a quadratic complexity, and this could be optimised by using a hashset to store all the triples to be excluded and for every given binding set we can check if it has to be excluded in constant time and not linear.
Beta Was this translation helpful? Give feedback.
All reactions