根据Difference in performance between using VALUES keyword and using directly the URI in the query?处的问题,我了解到在查询末尾使用VALUES
子句在性能和查询优化方面并不总是等同于直接使用URI而不是变量在查询字符串中。
来自Andy的评论说“ VALUES
最后是“像设置变量”,但不尽相同。优化器尝试将值推入,但并非在所有情况下都会发生它会改变语义。”
有人可以解释在哪种情况下不会发生吗?对于哪种查询结构,为什么要这么做?我需要了解在什么情况下不建议使用这种技术(我已经愉快地使用了多年)。
请注意,我不太懂SPARQL代数,因此请尝试使用简单的单词:-)
(我知道这不是特定于Jena或RDF4J,但我用这2个标签标记了这个问题,因为我知道根据所使用的框架,对它的优化可能会有所不同。)