как я могу оптимизировать мой запрос, чтобы сократить время выполнения - PullRequest
0 голосов
/ 07 мая 2019

Пожалуйста, позвольте мне, как я могу уменьшить запрос, чтобы сократить время выполнения.

SELECT 
   CASE
      WHEN MONTH(QBQ_DATEJOUR) = 1  AND QBQ_VALAXECT1 = [AXE1]  THEN
         (QBQ_CAHISTO+(QBQ_CAHISTO*([EV1]))/100) 
      WHEN MONTH(QBQ_DATEJOUR) = 2  AND QBQ_VALAXECT2 = [AXE2] THEN
         (QBQ_CAHISTO+(QBQ_CAHISTO*([EV2]))/100)
      WHEN MONTH(QBQ_DATEJOUR) = 3 AND [EV3] <> 0  THEN
         (QBQ_CAHISTO+(QBQ_CAHISTO*([EV3]))/100) 
      WHEN MONTH(QBQ_DATEJOUR) = 4 THEN
         (QBQ_CAHISTO+(QBQ_CAHISTO*([EV4]))/100) 
      ELSE QBQ_CAHISTO
   END  AS NVPREVU,
   MONTH(QBQ_DATEJOUR) AS MOISP
FROM QBPCUBETMP
WHERE QBQ_CODESESSION = [SESSION]
AND QBQ_VALAXECT1 = [AXE1]
AND QBQ_VALAXECT2 = [AXE2]

Как я могу сделать это оптимизировать. Пожалуйста, поделитесь альтернативой

Ответы [ 2 ]

1 голос
/ 08 мая 2019

Я бы начал с того, что удостоверился, что вы создали индекс:

create index ix1 on qbpcubetmp (qbq_codesession, qbq_valaxect1, qbq_valaxect2)
1 голос
/ 07 мая 2019

Сначала попросите вашего администратора баз данных добавить, обновить или перестроить индексы, чтобы убедиться, что ваши базы данных работают настолько чисто, насколько это возможно, хороший индекс может занять запрос от 5 минут до 1 секунды.

Если вы управляете своими собственными базами данных, ознакомьтесь с статьями в Интернете , чтобы помочь с оптимизацией запросов.

Существует множество факторов, в том числе мощность сервера, ОЗУ и т. Д., Помимо индексов, поэтому может быть больше (извините за каламбур) запросить больше мощности / оперативной памяти.

...