Xquery 如何加速Saxon doc()函数?

Xquery 如何加速Saxon doc()函数?,xquery,saxon,Xquery,Saxon,我有一个12mb的XML文件,我正在从xquery中访问它。文件是这样加载的 let $t := doc('file:///C:/foo/bar/file12mb.xml') 代码执行大约需要950毫秒 如何更快地加载XML文档? 加载和解析xml文件后,xquery主体只需几毫秒即可运行,因此我尝试加快xml文件的初始加载和解析,这占用了大部分执行时间 在解析xml文档后,Saxon是否有办法将其持久化? 理想情况下,我希望以某种方式持久化xml数据文件,但Saxon似乎纯粹被设计为xml处

我有一个12mb的XML文件,我正在从xquery中访问它。文件是这样加载的

let $t := doc('file:///C:/foo/bar/file12mb.xml')
代码执行大约需要950毫秒

如何更快地加载XML文档? 加载和解析xml文件后,xquery主体只需几毫秒即可运行,因此我尝试加快xml文件的初始加载和解析,这占用了大部分执行时间

在解析xml文档后,Saxon是否有办法将其持久化? 理想情况下,我希望以某种方式持久化xml数据文件,但Saxon似乎纯粹被设计为xml处理器,而不是xml数据库

架构有帮助吗? xml文件当前没有与其关联的架构。Saxon文档意味着拥有一个模式会加快查询执行,但会减慢xml数据的初始加载和解析,因此我没有尝试创建一个模式

感谢您的建议

版本

java version "1.6.0_26"
Saxon-B version 9.1.0.8

对于解析12MB文件来说,这听起来相当快。我不认为你可以优化它,不,Saxon不是一个数据库


在MarkLogic中,XML的解析只发生一次:在摄取期间。在其他数据库中,如Oracle,可能或不可能,取决于您如何加载它。

也许您应该考虑使用像SEDAN这样的XML数据库,存在吗?正如您提到的,Saxon是处理器,而不是存储器。