我有一个问题,如果有人能提供帮助,我将不胜感激。
我有两个表(REPL_SEND和Repl_Finish都有4列
UID (varchar)
reportID (varchar)
reportIDVersion (varchar)
replSendDTM (datetime)
UID在两个表中都不同(它是表的主键)
它们可能在ReportId
和reportIDVersion
中具有重复值。
我希望来自reportID/reportIDVersion
的{{1}},REPL_SEND
中不存在reportID/reportIDVersion
的这种组合。
我尝试了什么:
Repl_Finish
这将返回大约12000条记录。但是当我尝试
时SELECT *
FROM REPL_SEND (nolock)
WHERE reportID NOT IN (SELECT reportID FROM Repl_Finish)
我没有得到任何值(我的意思是DB花了很长时间,仍然在15分钟后执行)
问题#1:我的第一个查询是否正确? [主要问题]
问题2:为什么第二次查询需要花费这么多时间?
答案 0 :(得分:0)
问题1:
SELECT *
FROM REPL_SEND (nolock) WHERE UID NOT IN
(SELECT rs.UID FROM
Repl_Finish as rf, REPL_SEND as rs
where rf.reportID = rs.reportID
and rf.reportIDVersion = rs.reportIDVersion
)
问题2:可能需要在两个表中的reportID和reportIDVersion列上添加索引