为了提高性能,在存储过程中使用游标函数还是分析函数更好?
发布于 2010-08-16 00:38:09
以集合方式使用纯SQL要比使用游标来处理数据RBAR更好。这是因为PL/SQL和SQL引擎之间的上下文切换是一种开销。游标和它们的所有附加代码也是一种开销。
分析函数是对SQL的一个很好的扩展,它允许我们在SELECT语句中执行以前需要过程代码的操作。
当然,如果您希望处理大量数据,那么bulk collection和the FORALL statement绝对是最好的方法。如果你需要使用the LIMIT clause then explicit cursors,那是不可避免的。
发布于 2010-08-15 22:56:16
如果没有必要,最好使用而不是使用游标。
发布于 2010-08-30 01:47:40
与游标相比,使用纯SQL语句总是更好的选择。当使用纯SOL处理数据比较麻烦时,可以使用游标。
使用游标,我们每行处理一行。使用批量收集,我们减少了上下文切换,但我们仍然使用Limit子句在一个周期内仅处理几千行。使用纯SQL,只要有足够的可用资源,就可以插入或更新更多的行。回滚分段是一个限制因素。在一个项目中,我编写了非常复杂的纯SQL,以便在非常大的数据仓库环境中插入数百万行,但失败了。DBA提供了非常大的回滚段。使用批量收集时,我无法达到这样的性能。
请注意,大多数公司不会给你这样的便利。因此,请根据可用的资源做出决定。您可以将两者结合使用。
https://stackoverflow.com/questions/3487744
复制相似问题