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