java - 运行 XSL 转换 oracle db,而不是 java 应用程序

标签 java xml performance oracle xslt

我的数据库中有 3 个表,我正在它们上运行 XML 进程。

  1. XML 数据
  2. XML 恢复数据
  3. 转换器(用于从 XML 恢复数据创建 XML 数据的 XSLT)

我在 Java 应用程序端执行这些步骤,同时从这些表中检索数据。

  1. 检索 XML 数据。
  2. 如果 XML 数据不存在,则在 XML 恢复数据中搜索其恢复。
  3. 如果找到 XML Recovery,请从 Transformers 中查找从恢复表检索到的 XML 对应的 XSLT。
  4. 使用 Transformer XSLT 转换恢复 XML。
  5. 将结果插入 XML 数据表。
  6. 返回 XML 数据。

众所周知,解析和转换过程是 Java 应用程序上的高性能成本过程。此场景中还有 4 个数据库访问。

在 Oracle DB 端执行这些过程有什么缺点吗? Oracle 使用一个非常原生的引擎作为 XML 解析器,它是用 C 编写的。我的数据库访问权限只有 1。但我不确定将某些字段保留为 XMLTYPE 的成本以及这种用法的缺点。

最佳答案

是的,我认为在oracle数据库中这样做会更加优化性能。您有两个选择(假设您有 Oracle 11g):

1) 创建 Java 代码库的“静态”入口方法,并使用“loadjava”将其导入到 Oracle 数据库中。

http://docs.oracle.com/cd/B28359_01/java.111/b31225/chthree.htm

2)使用oracle内置功能。<​​/p>

[XMLTYPE.TRANSFORM(myxml, myxsl)][2] 

关于java - 运行 XSL 转换 oracle db,而不是 java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23286038/

相关文章:

java - 在 JGAE 上使用 memcache 和 jpa entitymanager 的例子?

java - 使用 Java2D 高效绘制数千个形状?

xml - 使用常规脚本在 SOAPUI 请求中设置参数的正确方法

xml - 使用 PowerShell 将 xml 从 UTF-16 转换为 UTF-8

java - 编译依赖于jar文件的java文件

xml - XSL 副本中的 XPath 祖先和后代

java - Android/Java/向 GoogleMaps FragmentActivity 添加自定义 View

javascript - 在 JavaScript 中使用元素值作为参数调用函数之前检查元素是否存在的最快方法

asp.net-mvc - MVC渲染加速

java - 同时处理Recyclerview和CardView的点击事件