0

在一些帮助下,我最近使用 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;

我的问题是,我将如何加快速度?索引这些字段会提高速度吗?我以前从未索引过字段,所以这样做需要一些帮助。

谢谢!

4

0 回答 0