如何加速Saxon doc()函数?

时间:2011-10-04 00:25:15

标签: xquery saxon

我有一个12mb的XML文件,我在xquery中访问它。该文件的加载方式如下;

let $t := doc('file:///C:/foo/bar/file12mb.xml')

代码执行大约需要950毫秒。

如何更快地加载XML文档? 一旦加载并解析了xml文件,xquery的主体只需几毫秒就可以运行,所以我正在尝试加速初始加载和解析占用大部分执行时间的xml文件。 / p>

解析后,Saxon有没有办法保留xml文档? 理想情况下,我想以某种方式保留xml数据文件,但Saxon似乎纯粹是设计为xml处理器而不是xml数据库。

架构会有帮助吗? xml文件当前没有与之关联的架构。 Saxon文档暗示有一个模式可以加快查询执行速度,但会减慢初始加载和解析xml数据的速度,所以我还没有尝试过创建模式。

感激地收到任何建议。

版本

java version "1.6.0_26"
Saxon-B version 9.1.0.8

1 个答案:

答案 0 :(得分:0)

对于解析12MB文件来说听起来非常快。我认为你不能优化它,不,撒克逊不是一个数据库。

在MarkLogic中,XML的解析只发生一次:在摄取期间。在其他数据库中,例如Oracle,可能会也可能不是这种情况,具体取决于您加载它的方式。