在一些帮助下,我最近使用 2 个本地表创建了一个查询;其中一张表用于“销售”,另一张表用于“每日价格”。我们的销售表目前无法存储产品当天的销售价格,因此我们通过匹配产品 ID 以及两个表中的日期字段从“每日价格”表中获取该价格。每日价格表实际上只是每天附加到主表的 3 个字段(产品 ID、日期、价格)(每天大约 50k 新行)。该查询必须考虑到“每日价格”表仅在工作日生成,并且周末会有销售。为此,该逻辑将价格从销售日期后的第一个可用日期开始计算(例如,周五或周六的销售将使用周一产生的价格报告)
当我使用一个小样本数据集时,我使用的代码似乎可以工作,但是对于更大的样本数据集则需要永远。下面是我正在使用的代码:
SELECT ProdID,
Date,
(SELECT Price
FROM PRICE_TABLE P
WHERE P.ProdID = S.ProdID
AND P.Date = (SELECT MIN(P2.Date)
FROM PRICE_TABLE P2
WHERE P2.ProdId = P.ProdID
AND P2.Date >= S.Date))
FROM SALES_HISTORY S;
我的问题是,我将如何加快速度?索引这些字段会提高速度吗?我以前从未索引过字段,所以这样做需要一些帮助。
谢谢!