您好,我目前正在使用 Oracle 11.2 XE 并尝试在使用大型 xml 文件时进行一些性能测试。到目前为止我还没有走得很远,希望你能帮助我一点。
我的目标是在数据库中有效地将大型 xml 文档从一种 xml 格式转换为另一种格式,因此我寄希望于 XMLType binary 和 XMLType Object 关系数据类型,它们应该进行性能优化,因为 Oracle 表示它们不需要 DOM 解析来进行评估大多数情况下的 XPath 表达式。
问题 1 是我无法为 OR XMLTYPE 注册复杂的模式。一个小时的注册时间后,它在大约 1.3 GB 的内存分配处出现内存不足错误而中断。架构已经分解为 3 个文件,触发 out of mem 错误的文件只有 80kb 大。我该如何处理?通过包含在更多连接的模式文件中进一步细分?
问题 2 是我无法让 XMLTransform 工作。我在用着
Insert into OUTPUT_BINARY SELECT a.filename, XMLtransform( a.xml, b.stylesheet )
FROM XMLTYPE_BINARY a, stylesheets b
WHERE (a.filename = 'test.xml' and b.filename = 'stylesheet.xsl');
表 XMLTYPE_BINARY 和 OUTPUT_BINARY 在哪里
create table XMLTYPE_BINARY (filename varchar2(50), xml XMLTYPE)
XMLTYPE Column xml store as BINARY XML
即使对于 100KB 的文档,它也需要永远转换(我在 30 分钟终止,不知道它是否会结束),当尝试使用 5MB 文档时,它给了我一个 ORA-24331:用户缓冲区太小。有人可以给我一个提示我在这里缺少什么吗?