在oracle中使用java的性能开销

在oracle中使用java的性能开销,java,performance,oracle,plsql,Java,Performance,Oracle,Plsql,各位好, 几天前,我偶然发现了在oracle中使用java的特性。自从我想知道 用java编写静态方法取代常规PL/SQL逻辑的可能性 因为我在这方面有足够的经验 java加上它提供的丰富库,我很想编写java方法,而不是常规的PL/SQL。会是这样吗 好的做法?。这样做会有很大的性能开销吗?。提前感谢。如果您决定放弃PL/SQL,转而使用Java代码,那么会有一些开销 尽管我不太相信将业务逻辑应用到PL/SQL中,但我已经看到太多的公司这样做了,包括我自己的公司 这样做的“性能考虑”并不在于是

各位好,

几天前,我偶然发现了在oracle中使用java的特性。自从我想知道 用java编写静态方法取代常规PL/SQL逻辑的可能性

因为我在这方面有足够的经验 java加上它提供的丰富库,我很想编写java方法,而不是常规的PL/SQL。会是这样吗
好的做法?。这样做会有很大的性能开销吗?。提前感谢。

如果您决定放弃PL/SQL,转而使用Java代码,那么会有一些开销

尽管我不太相信将业务逻辑应用到PL/SQL中,但我已经看到太多的公司这样做了,包括我自己的公司

这样做的“性能考虑”并不在于是否使用
静态方法。例如,您可能需要声明一个arraylist来对值进行排序,并根据值在另一个查询中从数据库检索更多结果


在我看来,我会将业务逻辑放在我的应用程序中,而不是投资于PL/SQL。这也有助于确保DBMS的可移植性,而不是购买

我认为如果您将CRUD操作存储为存储过程,那么这是可以接受的。如果您使用任何ORM框架,那么您可能会映射SP。通常,数据库是应用程序中更稳定的部分。应用程序可能会被重构或替换,但数据库不会改变(这只是我的经验)

视情况而定! 它们是两种不同用途的语言

你想做什么样的操作

  • 每个涉及数据层的操作(我知道这是有争议的)
  • 具有大数据处理的大规模Sql操作(批量操作)
  • 管理任何类型的交易
  • 这项工作可以在Pl/Sql中轻松完成
  • 您是否正在编写严格绑定到Sql数据类型的代码
  • 监视代码和相关数据库对象之间的关系
在这种情况下,我相信Pl/SQL是性能的最佳选择

注意,我写了PL/SQL:

  • PL作为过程语言(第二选择)
  • SQL作为数据查询语言(第一选择)
这两种语言在Oracle中的强大功能使您能够编写应用程序,以比任何其他语言更快、更简单的方式访问Oracle中的数据


您是否需要:

  • 操作系统操作
  • 目录和文件操作
  • 大规模邮件业务
  • 网络运营
  • 其他您在中无法执行的操作:
    • SQL(第一选择)
    • PL(第二选择)
  • 编写代码以便在架构中重用,如企业Java Beans
  • 编写代码以在其他地方重用
在这种情况下,我认为Java是一个更好的选择,在Oracle中是第三个选择。


但是我不是在重新发明轮子,这些信息在很大程度上是可以访问的,并且得到了像Tom Kyte等Oracle专家的证明

只是一些有用的搜索链接:


+2为了在应用程序中保留逻辑,需要指出的是,如果您购买了Oracle,您也可以使用它。这里有一个关于DB或应用层逻辑的良好问答(我个人会在DB和应用层中强制执行某些逻辑,即使这意味着复制):与OP问题无关!您的考虑事项是应用程序设计考虑事项。它们是有效的,但不能回答问题。他想在ORACLE中用Java重写pl/sql过程!我同意,我见过应用程序来来往往(以及各种不同的业务逻辑),但数据库往往会随着时间的推移而增长/发展,而不是被废弃或完全重做。一般来说,将数据相关的构建/维护逻辑放在数据库端(包括视图/mat视图),让应用程序关注显示/可用性问题。