You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Jeffrey Kenneth Tyzzer <jk...@ucdavis.edu.INVALID> on 2020/11/13 20:01:25 UTC

Explaining queries

We’re using Fuseki 3.16.0, and I’d appreciate guidance on getting the most detailed explanation available for query execution plans. Given that Fuseki is built upon and/or incorporates more discrete Jena components, e.g., TDB and ARQ, there appears to pertinent information in several places e.g.,

https://jena.apache.org/documentation/query/explain.html
https://jena.apache.org/documentation/query/logging.html
https://jena.apache.org/documentation/fuseki2/fuseki-logging.html
https://jena.apache.org/documentation/tdb/optimizer.html

but I wonder if some of it supersedes others.

Further, there are seemingly several related command options such as “tdb2.tdbquery –explain”, “sparql –explain”, and “arq.sparql –explain” (I believe one or more of these may be an alias for another).

Assuming we’ve generated a statistics file, what command and accompanying options and configuration parameters would you recommend for introspecting the most detailed information on how Fuseki is executing a query?

Thank you.

--Jeff

Re: Explaining queries

Posted by Andy Seaborne <an...@apache.org>.

On 13/11/2020 20:01, Jeffrey Kenneth Tyzzer wrote:
> We’re using Fuseki 3.16.0, and I’d appreciate guidance on getting the most detailed explanation available for query execution plans. Given that Fuseki is built upon and/or incorporates more discrete Jena components, e.g., TDB and ARQ, there appears to pertinent information in several places e.g.,

Optimization happens in two places: optimizing the algebra and 
optimizing the BGP executions.

> https://jena.apache.org/documentation/query/explain.html
> https://jena.apache.org/documentation/query/logging.html
> https://jena.apache.org/documentation/fuseki2/fuseki-logging.html
> https://jena.apache.org/documentation/tdb/optimizer.html
> 
> but I wonder if some of it supersedes others.

There is a command line tool "qparse" which takes query and prints the 
algebra to be executed, with optimizations.

It is also available online at http://sparql.org/

> Further, there are seemingly several related command options such as “tdb2.tdbquery –explain”, “sparql –explain”, and “arq.sparql –explain” (I believe one or more of these may be an alias for another).

These are all the same command with different ways to set the dataset.

The class is arq.query has "--explain" setting.

> Assuming we’ve generated a statistics file, what command and accompanying options and configuration parameters would you recommend for introspecting the most detailed information on how Fuseki is executing a query?

The ones you've found for the BGP logging and qparse to examine the algebra.

In theory, you can set "explain" on a Fuseki endpoint -- it's a context 
setting of "arq:logExec"

server, dataset or endpoint:

    ...   ja:context [ ja:cxtName "arq:logExec" ;  ja:cxtValue "true" ] ;

it gets mixed with all the other logging.

> 
> Thank you.
> 
> --Jeff
> 

     Andy