我发现了一些关于IN,JOINS和EXISTS的信息,并且还有效率。但对我而言,我的问题从未真正回答过,或者答案没有明确说明。 我的例子产生相同的结果。DB2 - IN与JOINS的联系
这里有两个例子:
SELECT COUNT(DISTINCT A.ID)
FROM A
,B
,C
WHERE A.ID = B.ID
AND B.ID = C.ID
AND 'SOME OTHER CONDITIONS';
SELECT COUNT(DISTINCT A.ID)
FROM A
WHERE A.ID IN (SELECT DISTINCT B.ID
FROM B
,C
WHERE B.ID = C.ID
AND 'SOME CONDITION')
AND 'SOME CONDITION';
运行针对数亿行的,就是其中一个明显的比其他的更熟练?
......它将完全取决于每个表格中的值的分布以及您拥有的指标。所以我们不能没有更多的信息来回答问题,你可能会更好地自己回答这个问题。一般而言,(内部)连接倾向于允许优化器尽快删除不匹配的行,但如果您有重复的行,则可能会增加“DISTINCT”所需的资源。在某些情况下,优化器可能为这两个查询生成相同的计划。 – 2014-10-30 10:12:37
'......其中一个明显比另一个明显?'如果(就像你在你的问题中所说的那样)“{你的}例子产生相同的结果。”如果您的情况更好,结果应该在资源使用或时间方面有所不同。 – user2338816 2014-10-31 04:37:59