我写了存储过程,我打电话需要很长时间。 我在'SP'中使用临时表。 这可能是理由??
CREATE OR REPLACE PROCEDURE TEST_SP
IS
BEGIN
INSERT INTO MYTEMP_table (A, B )
( SELECT id AS CUSTOMER_NO,
ACC_NO AS ACCOUNT_NO
FROM myTable );
UPDATE MYTEMP_table
SET MYTEMP_table.A =
( SELECT MIN (BRH_DATE)
FROM CUSTOMER,)
UPDATE MYTEMP_table
SET MYTEMP_table.B =
( SELECT MIN (SUBSTR (ENTRY_DATE, 0, 8))
FROM INFO)
.......
MYTEMP_table是临时表。
答案 0 :(得分:2)
此代码段看起来很糟糕。使用一个查询填充临时表似乎很奇怪:
select id, acc_no from myTable
然后用一个值擦除所有列:
UPDATE MYTEMP_table
SET MYTEMP_table.A =
( SELECT MIN (BRH_DATE)
FROM CUSTOMER,)
您的帖子不清楚,但希望您使用的是全局临时表(基于内存),而不是用于临时存储的物理表。
对同一行的多次写入是减慢工作速度的可靠方法(在物理表中更多 - 但在任何一种情况下仍然很慢)。如果可能,请考虑以下事项: