SEL COUNT(*) FROM DATABASE_A.QF
数= 37,011,480
SEL COUNT(*) FROM DATABASE_A_INC.QFA
数= 368,454
查询1
DELETE A
FROM
DATABASE_A.QF A,
DATABASE_A_INC.QFA B
WHERE
A.Q_NUM = B.Q_NUM
AND
A.ID = B.ID
AND
A.LOCATION_ID=1;
上面的DELETE查询会遇到SPOOL空间问题。
所以我用另一种形式重写了它。
查询2
DELETE FROM DATABASE_A.QF A WHERE (Q_NUM,ID) IN
(SELECT Q_NUM,ID FROM DATABASE_A_INC.QFA B)
AND LOCATION_ID=1;
处理了368454行。 删除命令完成
我的问题:
答案 0 :(得分:0)
查询在逻辑上是相同的,是的。我的猜测是你的SPOOL空间问题的原因是你用逗号列出你的表而不是加入它们。尝试计算查询1,如下所示:
SELECT COUNT(*)
FROM DATABASE_A.QF A
INNER JOIN DATABASE_A_INC.QFA B ON A.Q_NUM = B.Q_NUM
WHERE A.ID = B.ID
AND A.LOCATION_ID=1;