所以我知道Jena Arq支持舞台重新排序作为优化。 (见https://github.com/apache/jena/blob/master/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/StageGeneratorGeneric.java)
在第70行,检查输入是否为QueryIterRoot
- 我的问题是我提交的每个查询,输入为QueryIterRoot
,因此它永远不会在该块内运行优化。
追溯堆栈,我无法看到如何生成查询,其中QueryIterRoot不是传递给StageGeneratorGeneric的输入。我错过了一些让舞台优化工作的东西吗?
答案 0 :(得分:0)
QueryIterRoot
总是一行没有变量,所以没有替换要做,因此静态重新排序没有失效。假设查询是通过静态优化步骤优化的,或者保留在用户的控制之下。
对于简单模式查询WHERE { ... basic graph pattern ... }
,输入将为QueryIterRoot