什么索引可以加速X-Hive / Documentum xDB中的XQuery?

时间:2010-07-07 16:43:18

标签: indexing performance xquery

我的测试数据库中有大约2500个文档,搜索xpath /path/to/@attribute大约需要2.4秒。执行distinct-values(/path/to/@attribute)需要3.0秒。

我已经能够通过在/path/to[@attribute='value']上添加路径值索引,将/path/to[@attribute<STRING>]上的查询加速到数百或数十毫秒,但我认为没有任何索引可以用于更一般的查询。

有人知道我应该使用哪些索引吗?

1 个答案:

答案 0 :(得分:1)

您建议的索引是正确的(/ path / to [@attribute]),但遗憾的是xDB优化器当前不能识别这种特定情况,因为存储在索引中的“目标节点”始终是一个元素,不是属性。如果/ path / to / @属性的结果很少,那么您可以通过稍微修改您的查询来优化它:distinct-values(/ path / to [@attribute] / @ attribute)。通过此查询,优化器识别出可以使用索引来访问“to”元素,但是它仍然可以访问目标文档以检索@attribute步骤的属性。这正是为什么它只会使点击次数很少的情况:每次点击都可能访问不同的数据页面。

您还可以直接通过API访问索引中的键:XhiveIndexIf.getKeys()。这将非常快,但显然这不是非常用户友好(并且应该由优化器完成)。

显然,优化器可以处理这个问题。我将它添加到bug跟踪器。