BaseX中的平均功能缓慢

时间:2015-07-19 02:33:20

标签: xml xquery basex

我完全不熟悉XML,而是XQuery。我有一个大的XML文件(~30 GB),我已经加载到Basex数据库中。我的问题是平均功能需要很长时间才能运行。

示例XML文件:

<a>
 <b Id="1" Result="1"/>
 <b Id="2" Result="2"/>
 <b Id="1" Result="5"/>
 <b Id="1" Result="510"/>
</a>

我想要Id = 1的平均结果。当我跑步时,

for $x in //a/b
where $x/@Id="1"
return $x/@Result

查询大约需要1-2秒。不错。但是,当我试图获得平均值时,查询永远不会结束(我让它运行10分钟)

avg(
for $x in //a/b
where $x/@Id="1"
return $x/@Result    
)

发生了什么事?

如果我能提供便于回答的其他信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

尝试avg(// a / b [@ Id =“1”] / @ Result)。谓词比where子句更有效。