1

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

4

1 回答 1

2
  • 在内部查询中按 ProductCode 删除订单,因为外部查询也进行排序

  • 确保您的两个表都有索引插入一个 id 字段,该字段是两个表的主键、唯一和自动增量(如果需要)

  • 也试试这个查询。它也可能会提高速度,但我不知道为什么。应该问这两种方式是否有更好的性能效果

    选择 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

于 2013-09-15T15:24:23.597 回答