Ms access 在Access SQL中优化不在查询中

Ms access 在Access SQL中优化不在查询中,ms-access,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秒 在内部查询中删除order by ProductCode,因为outher 查询也进行排序 确保两个表

我需要优化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秒

在内部查询中删除order by ProductCode,因为outher 查询也进行排序

确保两个表都有索引插入id字段,该字段 是主键,如果两者都需要,则是唯一的和自动激活的 桌子

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

从tblProducts pro LEFT中选择pro.*在pro.ProductCode=pri.ProductCode上加入tblPrice pri,其中pri.ProductCode为NULL,pri.DATEXTRACTED=2013年9月15日按pro.ProductCode订购


应该在哪个列上创建索引?ProductCode或DateExtracted以及在哪些表中?这两个表都应该有索引。一般id字段用于索引表。这有助于将时间缩短到约10-15秒,但我们仍然可以优化它以更快地获取记录吗?从tblProducts pro LEFT加入tblPrice pri ON pro.ProductCode=pri.ProductCode,其中pri.ProductCode为NULL,pri.DATEXTRACTED=15-Sep-2013ORDER BY pro.ProductCode返回两个表中的所有记录。然而,我需要tblProducts的记录,这些记录不在今天的tblPrice中。您需要tblProducts中的每个字段吗?您可以通过只回拉实际需要的字段来降低一些开销。tblProducts只有两列ProductCode和ProductName,并且是必需的。所有其他信息已从表中剥离到单独的表中。