我已经使用这样的临时表优化了一个复杂的 Oracle 语句:
原文:
SELECT data FROM table WHERE ..complex statement..;
优化(我不能使用 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;
问题是:我必须在新数据库上执行这些语句。最好删除并创建临时表,或者仅在存在时截断它?我该如何处理这个额外的表?