我正在尝试使用以下SQL查询(在SAS中)查找pool1
中pool2
中不存在的Pool1
中的任何记录。 pool2
有11,000,000条记录,PROC SQL;
CREATE TABLE ALL AS
SELECT A.ID
FROM POOL1 A
WHERE NOT EXISTS (SELECT B.ID
FROM POOL2 B
WHERE B.ID = A.ID);
QUIT;
有700,000条记录。这是我遇到问题的地方。我让查询运行了16个小时,它还没有完成。有没有更有效的方法(在SQL或SAS中)来实现我需要做的事情?
var DoThis = function() {
var x = "hello";
alert(x);
}
DoThis = function () {
var x = "bye";
alert(x);
}
DoThis(); //shows the value "bye"
答案 0 :(得分:3)
PROC SQL;
CREATE TABLE ALL AS
SELECT A.ID
FROM
POOL1 A
WHERE A.ID NOT IN (SELECT B.ID
FROM
POOL2 B)
;
上述更改应返回相同的结果集,但运行时间要少得多,因为您没有尝试将POOL2连接回POOL1,而只是排除POOL2中存在的结果。
如另一个答案中所述,INDEX可能会有所帮助,但如果ID字段是主键,那么它们可能已经在INDEX中受到影响。