在Access SQL中优化NOT IN查询

时间:2013-09-15 15:20:28

标签: ms-access

我需要优化SQL查询

select * from tblProdutcs 
where ProductCode Not in 
(SELECT ProductCode From tblPrice 
WHERE DateExtracted=#15-Sep-2013# 
order by ProductCode) 
order by ProductCode

这花了太长时间(目前约45-60秒。

1 个答案:

答案 0 :(得分:2)

  • 在内部查询中删除ProductCode的顺序,因为外部 查询也做了订购

  • 确保两个表都有索引插入一个id字段 是主要的,唯一的和自动的(如果必要的话)两者 表

  • 也可以尝试此查询。它也可能提高速度,但我不知道 为什么。应该问一下是否有更好的性能效果 在这两种方式之间

    SELECT pro。* FROM tblProducts pro LEFT JOIN tblPrice pri ON pro.ProductCode = pri.ProductCode WHERE pri.ProductCode IS NULL AND pri.DateExtracted =#15-Sep-2013#ORDER BY pro.ProductCode

    < / LI>