【发布时间】:2013-03-29 20:30:20
【问题描述】:
我有一个用例,其中大量数据有时会添加一百万行到临时表(会话全局临时表)中,并且该表要连接到另一个表以生成结果/图形/热图。数据是文本文件或可能来自命名管道/流/套接字。 SQLLDR 不是一个选项,因为它是一个临时表。
您对如何有效地做到这一点有什么建议吗?目前 SQL 语句如下所示:
insert into tempipdata (IP)
select gutils.ip2long('100.0.59.165') FROM DUAL UNION
select gutils.ip2long('100.1.117.161') FROM DUAL UNION
select gutils.ip2long('100.23.117.161') FROM DUAL;
任何建议。我可以从程序输出的套接字或标准输入中获取 IP 地址数据。
谢谢 维杰
【问题讨论】:
-
你为什么不选择 Oracle 的嵌套表呢?创建、填充和删除大型临时表可能会使您的表空间碎片化。
-
@Rachcha - 将一百万行插入 PL/SQL 集合可能会给 PGA 带来巨大压力。有时临时表是正确的解决方案。
标签: performance oracle temp-tables