我是甲骨文新手。我需要在存储过程中处理大量数据。我正在考虑使用临时表。我正在使用连接池,并且该应用程序是多线程的。
有没有一种方法可以为每次调用存储过程创建不同的表实例来创建临时表,以便来自多个存储过程调用的数据不会混淆?
你说你是 Oracle 新手。我猜您已经习惯了 SQL Server,其中使用临时表是很常见的。 Oracle 的工作方式不同,因此不太常见,因为它的必要性较低。
请记住,使用临时表会产生以下开销:
- 读取数据填充临时表
- 将临时表数据写入文件
- 进程启动时从临时表中读取数据
Most of that activity is useless in terms of helping you get stuff done. A better idea is to see if you can do everything in a single action, preferably pure SQL.
顺便说一句,您提到的连接池引发了另一个问题。处理大量数据的进程不适合在 OLTP 模式下运行。您确实应该考虑启动后台(即异步)进程(可能是数据库作业)来运行存储过程。如果您想定期运行此作业,则尤其如此,因为我们可以使用 DBMS_SCHEDULER 来自动管理此类事物。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)