Индексирование столбцов в MS Access

С некоторой помощью я недавно создал запрос, используя 2 локальные таблицы; одна из таблиц - "Продажи", а другая - "Ежедневные цены". Наша таблица продаж в настоящее время не может хранить цену, по которой продукт был продан за день, поэтому мы извлекаем эту цену из таблицы "Дневные цены", сопоставляя идентификатор продукта, а также поля даты в обеих таблицах. Ежедневная таблица цен буквально состоит из 3 полей (идентификатор продукта, дата, цена), добавляемых в основную таблицу каждый день (около 50 тыс. Новых строк в день). Запрос должен был учитывать тот факт, что таблица "Суточные цены" генерируется только в рабочие дни, а продажи будут в выходные. Для этого логика вводит цену с первой доступной даты после даты продажи (например, о сделке, сделанной в пятницу или субботу, будет сообщаться использование цены, созданной в понедельник).

Код, который я использовал, кажется, работает, когда я использую небольшой примерный набор данных, однако он всегда работает с большими. Ниже приведен код, который я использую:

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;

Мой вопрос, как бы я ускорить это? Будет ли индексирование этих полей улучшать скорость? Я никогда не индексировал поля раньше, поэтому мне нужно немного помочь в этом.

Спасибо!

0 ответов

Другие вопросы по тегам