Further test cases:

seems to be tied to the number of arguments inside the in() clause eg:

this works:
select distinct ?s ?p ?o WHERE {
 ?s ?p ?o . FILTER( ?s in (<http://dbpedia.org/resource/BBC>) )
}

this doesn't (occasionally does but is exceptionally slow):
select distinct ?s ?p ?o WHERE {
 ?s ?p ?o . FILTER( ?s in
(<http://dbpedia.org/resource/BBC>,<http://dbpedia.org/resource/Quantum_tunnelling>)
)
}

and to ensure it's not a size of graph thing; the following queries
create a small result set which is then filtered using the second IN

this works:
select distinct ?s ?p ?o WHERE {
 ?s foaf:page ?page .
 FILTER( ?s in
(<http://dbpedia.org/resource/BBC>,<http://dbpedia.org/resource/Quantum_tunnelling>)
) .
 ?s ?p ?o . FILTER( isURI(?o) )
 FILTER( ?o in( <http://dbpedia.org/resource/United_Kingdom>) )
}

this doesn't:

select distinct ?s ?p ?o WHERE {
 ?s foaf:page ?page .
 FILTER( ?s in
(<http://dbpedia.org/resource/BBC>,<http://dbpedia.org/resource/Quantum_tunnelling>)
) .
 ?s ?p ?o . FILTER( isURI(?o) )
 FILTER( ?o in(
<http://dbpedia.org/resource/United_Kingdom>,<http://dbpedia.org/resource/Category:Physics>
) )
}

regards!

Nathan wrote:
> Hi Ivan / All,
> 
> I've checked, checked and checked a hundred+ times; there's definitely a
> performance issue with *only* the following query (where a,b,c can be
> any URIs, and where * can be * or ?s ?p ?o ):
> 
> SELECT * WHERE {
>   ?s ?p ?o . FILTER( ?s in( a,b,c ) )
> }
> 
> I can skirt around the performance issue by rewriting the query as a
> UNION or by either of the following (which requires me to know a
> predicate at least all of the subjects share in common):
> 
> SELECT ?s ?p ?o WHERE {
>  ?s foaf:page ?skip ; ?p ?o . FILTER( ?s in( a,b,c ) )
> }
> 
> SELECT ?s ?p ?o WHERE {
>  ?s foaf:page ?skip . FILTER( ?s in( a,b,c ) ) . ?s ?p ?o
> }
> 
> I'm also sure that it's not down to server performance as every other
> query I run (many of them v complex) run without any problems, in fact
> they run very quickly (which is great! good work).
> 
> Please do see and test for yourself at the following address:
> 
> http://webr3.org:8890/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=SELECT+*+WHERE+{%0D%0A+%3Fs+%3Fp+%3Fo+.+FILTER%28+%3Fs+in%28%3Chttp%3A%2F%2Fdbpedia.org%2Fresource%2FRDFa%3E%2C%3Chttp%3A%2F%2Fdbpedia.org%2Fresource%2FSemantic_Web%3E+%29+%29%0D%0A}&format=text%2Fhtml&debug=on&timeout=
> 
> Many Regards,
> 
> Nathan
> 
> Ivan Mikhailov wrote:
>> Hello Nathan,
>>
>> I've checked the compilation of the query and it seems the same for old
>> and new versions, so I have no clue. I can't say anything about the
>> speed of dbpedia.org endpoint, but it runs Virtuoso Cluster Edition that
>> is not yet released and it has no relation to your local installation.
>>
>> What about the speed of same queries but with the graph specified? BTW
>> how many graphs does the database contain? What is the database size,
>> number of buffers and the hardware (most important, amount of RAM)?
>>
>> Best Regards,
>> Ivan Mikhailov
>> http://virtuoso.openlinksw.com
>>
>> On Tue, 2010-02-09 at 22:14 +0000, Nathan wrote:
>>> Hi,
>>>
>>> I'm pretty sure that the performance of in() seems to have downgraded
>>> somewhat with the new 6.1.0.3126 release of virtuoso; I'm struggling to
>>> run even very simple queries such as the following without them timing
>>> out, on both my own 6.1 and dbpedia.org's instance:
>>>
>>> SELECT * WHERE {
>>>  ?s ?p ?o . FILTER( ?s in(<http://dbpedia.org/resource/RDFa>,
>>> <http://dbpedia.org/resource/Semantic_Web> ) )
>>> }
>>>
>>> Pretty sure this is a new issue as I can run similar queries (all be it
>>> on a smaller dataset) on 6.0.1-pre1.3124 without any problems, and
>>> likewise I've tested on the bio2rdf.org sparql endpoint and performance
>>> is nice and fast as expected.
>>>
>>> Regardless even if the above versioning detail is incorrect, the in()
>>> performance definitely appears to be an issue on 6.1.1.0.3126
>>>
>>> Many Regards,
>>>
>>> Nathan
>>
>>
>>
> 
> 
> ------------------------------------------------------------------------------
> SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
> Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
> http://p.sf.net/sfu/solaris-dev2dev
> _______________________________________________
> Virtuoso-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/virtuoso-users
> 
> 


Reply via email to