使用临时表优化的 SQL Oracle 语句

发布于 2024-08-02 12:27:14 字数 430 浏览 6 评论 0原文

我使用临时表优化了一个复杂的 Oracle 语句,如下所示:

原始

SELECT data FROM table WHERE ..complex statements..;

optimized (我不能使用WITH关键字,因为我处理

CREATE GLOBAL TEMPORARY TABLE temptab (x NUMBER, y DATE) ON COMMIT DELETE ROWS;
插入临时表 SELECT * FROM temp;
SELECT 数据 FROM temptab WHERE ..复杂语句..;
COMMIT;

问题是:我必须在新数据库上执行这些语句。最好删除并创建临时表,或者仅在存在时截断它?我该如何处理这个额外的表?

I have optimized a complex Oracle statement using temporary table like this :

original :

SELECT data FROM table WHERE ..complex statement..;

optimized (I can't use WITH keyword, because I deal with < Oracle9i) :

CREATE GLOBAL TEMPORARY TABLE temptab (x NUMBER, y DATE) ON COMMIT DELETE ROWS;
INSERT INTO temptab SELECT * FROM temp;
SELECT data FROM temptab WHERE ..complex statement..;
COMMIT;

The problem is: I have to execute these statements on a new database. It is better to drop and create temporary table, or truncate it only if exists ? How can I deal with this additional table ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

自演自醉 2024-08-09 12:27:14

您的临时表数据仅在事务范围内可见。

提交或回滚事务(或断开连接并重新连接)后,数据就会消失。

您不需要每次运行查询时都创建表:只需创建一次。

Oracle 中的 TRUNCATE 是一个 DDL 操作(它提交其运行的事务)。

Your temporary table data is visible only in scope of the transaction.

After you commit or rollback the transaction (or disconnect and reconnect), the data vanishes.

You don't need to create the table each time you run the query: just create it once.

TRUNCATE in Oracle is a DDL operation (it commits the transaction it runs under).

葬心 2024-08-09 12:27:14

临时表不消耗数据文件中的内存。临时表分配临时段的内存。会话或事务结束后内存将被释放。

不需要对临时表进行截断。创建一次并使用它。没有悲伤。

有关临时表的更多信息请参见此处

Temporary tables do not consume memory in you datafiles. Temporary tables allocate memory of your temp segments. The memory is freed after session or transaction ends.

Truncate on temporary tables is not necessary. Create is once and use it. No sorrows.

More about temporary tables here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文