【发布时间】:2011-10-14 01:28:26
【问题描述】:
大家好,
几天前,我遇到了在 oracle 中使用 java 的特性。自从我想知道 在 java 中编写静态方法替换常规 PL/SQL 逻辑的可能性。
因为我有足够的经验 java 加上它提供的丰富库,我很想编写 java 方法而不是常规的 PL/SQL。这会是 一个好习惯?这样做会有很多性能开销吗?提前致谢。
【问题讨论】:
标签: java performance oracle plsql
大家好,
几天前,我遇到了在 oracle 中使用 java 的特性。自从我想知道 在 java 中编写静态方法替换常规 PL/SQL 逻辑的可能性。
因为我有足够的经验 java 加上它提供的丰富库,我很想编写 java 方法而不是常规的 PL/SQL。这会是 一个好习惯?这样做会有很多性能开销吗?提前致谢。
【问题讨论】:
标签: java performance oracle plsql
在您决定从 PL/SQL 转向 Java 代码时会涉及一些开销。
虽然我不太相信将业务逻辑放入 PL/SQL 中,但我已经看到太多公司这样做了,包括我自己的公司。
这样做的“性能考虑”并不是是否使用static 方法。例如,您可能需要声明一个数组列表来对值进行排序,并根据这些值在另一个查询中从数据库中检索更多结果。
IMO,我会将业务逻辑放在我的应用程序中,而不是投资于 PL/SQL。这也有助于确保 DBMS 的可移植性而不是被接受。
【讨论】:
我认为如果您将 CRUD 操作存储为存储过程是可以接受的。如果您使用任何 ORM 框架,那么您可能会映射 SP。更常见的是,数据库是应用程序中更稳定的部分。应用程序可能会被重构或替换,但数据库不会改变(这只是我的经验)。
【讨论】:
视情况而定! 它们是用于不同目的的两种语言!
您想进行哪种操作?
在这种情况下,我相信Pl/SQL 是性能的最佳选择。
注意,我写的是PL/SQL:
这两种语言的强大功能与 Oracle 紧密相关,让您编写的应用程序可以比任何其他语言更快更轻松地访问 Oracle 中的数据。
你需要:
在这种情况下,我认为 Java 是更好的选择,在 Oracle 中是第三选择。
但是我并不是在重新发明轮子,这些信息在很大程度上可以由 Oracle 专家(如 Tom Kyte 等)获得和证明。
只是一些有用的搜索链接:
【讨论】: