日期:2014-05-17  浏览次数:20568 次

查询语句优化问题
表 ur_logs_dl 和 ur_logs_done 的记录数都相当大,千万记录以上
请问下面那条语句查询效率更高?

select * from [ur_logs_dl]
where [coltdid] = 'XXXXX' 
and not exists (select * from [ur_logs_done] where fid = [ur_logs_dl].id)

select * from [ur_logs_dl]
where [coltdid] = 'XXXXX'
and id not in (select fid from [ur_logs_done])

------解决方案--------------------
上面那个高。
------解决方案--------------------
1、执行计划贴出来;
2、索引情况贴出来。
------解决方案--------------------
第一个语句效率高

除了两表id字段主键是需要的外,[ur_logs_dl]的[coltdid]字段必须有索引