java - Saxon XQuery 内存管理

标签 java sql jdbc xquery saxon

所以我最近一直在与 Saxon 合作,并且对其内存管理能力有些担忧。

据我了解,Saxon 不将数据作为流,这意味着如果我需要对 1000 个元组进行比较,则所有 1000 个元组都会分配内存。对我来说,这似乎是一个有缺陷的系统。除了java的限制之外,这背后还有其他原因吗?

我觉得这确实使 XQuery 成为支持流式处理的 SQL 和 JDBC 的不太可行的替代方案。

最佳答案

一般来说,XPath 允许在源文档中的任何位置导航,例如您可以编写类似 //x[@y =//z/@y] 的内容 - 这样的查询显然不可流式传输.

Saxon-EE 确实支持有限查询子集的流式处理。目前,XSLT 中的流功能比 XQuery 先进得多,这仅仅是因为 XSL 工作组在过去几年中一直在该领域进行广泛的工作。 Saxon-EE 9.6 很好地支持 XSLT 3.0 规范草案的所有流功能。

详细信息在这里:

http://www.saxonica.com/documentation/#!sourcedocs/streaming

这还包括有关 Saxon 流式 XQuery 功能的信息

关于java - Saxon XQuery 内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26835934/

相关文章:

java - 如何在 java 的 for 循环中使用公式

java - UNSIGNED BIGINT 的 jOOQ 函数生成生成 LONG 而不是 ULONG

java - sql update 语句无法从 Java 运行,而是手动运行?

java - 在碧 Jade 报告中将整个 sql 查询作为参数传递

java - 获取验证码 session 的图像

sql - 如何在 SQL 中将 nvarchar 转换为十进制

sql - CakePHP - SQL 查询中的列别名

java - 当我尝试为 Oracle 数据库创建 Connection 对象时,为什么会出现此 SQLException(没有合适的驱动程序)?

java - 如何处理txt文件中的空格/制表符

java - onEvent 未检测到我的应用程序中的任何事件