下面的查询需要太多的时间,最有可能的。SQL查询“不”条款的执行“不中”的使用需要,因为太长
你可以提出任何改进的地方?
SELECT vcode,
vname,
1014 AS fid
FROM testcodes co
WHERE co.vcode NOT IN (SELECT dict.vcode
FROM datadictionary dict
WHERE dict.fid = 1014)
有关结构的一点是。 vCode,vName是varchar 和testCodes和DataDictionary具有相同的结构。
我搜索这个问题,发现左连接都不可能解决这个问题? (为什么它做得更好,如何做到)?
可有人引导,如果它能够提高???
至于为什么它的速度更快:在'LEFT JOIN'语法告诉查询优化器如何联接表的更直接的方式,而'NOT IN(SELECT ...)'是更灵活,但需要从更多的工作数据库引擎。 – geekosaur 2011-03-16 07:30:02
即使没有索引。查询运行DAMN FAST。我写的查询花了一分多钟甚至仅仅几千条记录(在数据字典中几乎10K,在测试代码中3K) – Umer 2011-03-16 07:39:58
顺便说一句,感谢这样的编辑,我总是会混淆如何缩进那些sql脚本:) – Umer 2011-03-16 07:41:19