JCR查询 - 使用OR时性能下降?

时间:2015-01-21 19:46:40

标签: jackrabbit jcr

我有一个JCR查询,如:

SELECT * FROM [my:nodetype] WHERE ISDESCENDANTNODE([/somepath]) OR (otherPath LIKE '/someotherpath')

它在6秒内执行。

otherPath属性是一个多值字符串属性(只有两个对象设置它)。 整个数据库中只有7个类型my:nodetype的节点

虽然两个单独的查询:

SELECT * FROM [my:nodetype] WHERE ISDESCENDANTNODE([/somepath])

并且

SELECT * FROM [my:nodetype] WHERE otherPath LIKE '/someotherpath'

执行时间小于1毫秒。有没有理由为什么第一个查询运行得如此之慢?也许有可能像在SQL数据库中一样在Jackrabbit中查看查询计划?我该如何调试问题?

我无法想象为什么总共搜索7个节点,无论搜索条件是否会产生7秒的查询运行时间......

1 个答案:

答案 0 :(得分:0)

这是Jackrabbit中的一个已知错误。我不确定,但我认为在最新版本的Jackrabbit中仍未纠正。

这与此无关,你必须使用两个查询。