> On 18 Oct 2022, at 11:01 am, Andy Seaborne <a...@apache.org> wrote:
> 
> 
> 
> On 18/10/2022 09:07, Holger Knublauch wrote:
>> We also observe some slowness.
> 
> Could you expand on that, please? e.g. figures, and references to previous 
> releases.

I am still profiling this and haven't been able to fully narrow it down. I also 
don't want to make statements that later turn out to be due to our own changes 
as it could well be a false alarm.

But this query responded immediately before we updated and now takes 21 seconds

SELECT *
WHERE {
    ?ps dash:propertyRole dash:IconRole .
    ?ps sh:path ?predicate .
    FILTER EXISTS {
        ?instance ?predicate ?anyAssertedIcon .
        ?instance a ?type .
    }
}

Above, the variable ?predicate has 12 distinct values, but judging by the 
debugger, the FILTER first iterates over all ?instance rdf:type ?type bindings 
and only then narrows down by the ?predicate. The graph has 500k of ?instance 
values, so I assume there is a combinatorial explosion.

Or so it seems at the moment. I will post again when I have found out more. I 
walked through the debugger and it does indeed behave differently within 
E_Exists, with 4.3 returning much quicker.

Meanwhile, does any of that ring a bell given the changes between 4.3 and 4.6? 
I went through the release notes but nothing related to SPARQL execution order 
caught my attention.

Holger


> 
>    Andy
> 
> 

Reply via email to