performance - 使用可重用代码编写过程的推荐做法是什么?

标签 performance oracle design-patterns function code-reuse

我想与一些更有经验的 Oracle 开发人员一起了解后端开发的最佳实践。

我编写了很多以 XML 格式打印数据并被 HTTP 服务使用的包。

为此,我遍历游标并使用 htp.p 打印数据。

例如

for i in c_my_cursor loop
  htp.p('<element>', i.data_field, '</element>');
end loop;

现在我听说游标对性能不利(这是真的吗?)。而且,在不同的包中使用了类似的游标,我觉得从维护的角度来看,切换到功能会更好。

但是我可以从函数返回什么?我不认为游标会起作用。各位大佬用什么?

最佳答案

游标本身并不坏。不好的是处理 Row By Agonizing Row,而不是使用 set 处理。 SQL 是关于集合的乐趣。游标的问题在于 PL/SQL 开发人员通常会自动获取它们;这通常会导致我们走上 RBAR 路线,而直接的 SQL 语句会更有效率。

函数并不比过程更有效率。根据您是在做某事还是在检索某事来选择函数或过程。

在您的情况下,我会考虑 Oracle 的内置 XML 功能是否适用于您的特定情况。这在一定程度上取决于您使用的是哪个版本的 Oracle,但几乎所有自 8i 以来的版本都适用于您发布的特定示例。 Find out more .

关于performance - 使用可重用代码编写过程的推荐做法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6854712/

相关文章:

java - 为什么检查 HashMap 是否具有特定值需要很长时间才能在 for 循环中执行?

c - read() 和 pread(),哪种方式效率更高?

java - Java中的字符串压缩

sql - 在 SQL Navigator 中选择表的所有大写值行

oracle - 实例 "PLSExtProc",状态未知

asp.net-mvc - MVC 必须使用 REST 吗?

performance - 网站用户事件日志数据存储的建议

java - 没有良好 PK 的 Oracle 遗留表 : How to Hibernate?

java - 使用和未使用的数据库连接对象

design-patterns - "Brokered definition set"设计模式——众所周知的另一个名字?