Рассчитать дубликат года к дате - PullRequest
1 голос
/ 16 мая 2019

Я пытаюсь рассчитать год к дате

Я пробую этот скрипт, он возвращает хорошие значения, но он слишком медленный

select 
        T.Delivery_month,
    T.[Delivery_Year],
    Sales_Organization,
    SUM(QTY) as Month_Total,

    COALESCE(
        (
            select SUM(s2.QTY) 
            FROM stg.Fact_DC_AGG s2 
            where 
                s2.Sales_Organization = T.Sales_Organization 
                and  s2.[Delivery_Year]=T.[Delivery_Year]
                AND s2.Delivery_month<= T.Delivery_month

        ),0) as YTD_Total
from  stg.Fact_DC_AGG T
group by 
    T.Delivery_month,
    T.[Delivery_Year],
    Sales_Organization
ORDER BY 
    Sales_Organization,T.[Delivery_Year],
T.Delivery_month

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

select 
        T.Delivery_month,
    T.[Delivery_Year],
    Sales_Organization,
    SUM(QTY) as Month_Total,

    COALESCE(
        (


        ),0) as YTD_Total
from  stg.Fact_DC_AGG T
INNER JOIN stg.Fact_DC_AGG s2 
            ON  
                s2.Sales_Organization = T.Sales_Organization 
                and  s2.[Delivery_Year]=T.[Delivery_Year]
                AND s2.Delivery_month<= T.Delivery_month
group by 
    T.Delivery_month,
    T.[Delivery_Year],
    Sales_Organization
ORDER BY 
    Sales_Organization,T.[Delivery_Year],
T.Delivery_month

Как оптимизировать запрос или исправить второй скрипт?

1 Ответ

0 голосов
/ 16 мая 2019

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

ПРИМЕЧАНИЕ: Отсутствие индексов может повлиять на производительность SQL Server, что может снизить производительность SQL Server, поэтому обязательно ознакомьтесь с фактическими планами выполнения запросови укажите правильный индекс.

Для получения дополнительной информации перейдите по следующим ссылкам.

1) Советы и рекомендации по настройке производительности SQL Server

2) Создание недостающего индекса из фактического плана выполнения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...