Добрый день!
Имеется некий куб, в котором имеется аналитика по продажам и движениям товара, существует задача получения показателя оборачиваемости.
Есть меры [ДвижКолво] и [ДвижСумма], которая отражает проводки по движению товара (закпуки, перемещения по торговым точкам и складам, продажи итд). Соответственно остаток высчитывают (через вычисление), как:
Далее смотрим формулу оборачиваемости. Оборот (дн) = Средний товарный запас / Средний объем продаж за выбранный период.
в mdx для вычисления использую простую формулу:
где [ПродажиКолво] и [ПродажиСебестоимость], соответствующие меры куба.
Проблема заключается в очень долгом построении отчета на основании данных куба при использовании данных вычислений, если сравнивать с другими мерами и вычислениями. Понимаю, что функция avg() может быть очень требовательной к ресурсам, но есть ли подходы, с помощью которых можно увеличить скорость обработки?
Имеется некий куб, в котором имеется аналитика по продажам и движениям товара, существует задача получения показателя оборачиваемости.
Есть меры [ДвижКолво] и [ДвижСумма], которая отражает проводки по движению товара (закпуки, перемещения по торговым точкам и складам, продажи итд). Соответственно остаток высчитывают (через вычисление), как:
[ОстатокКолво]: sum(PeriodsToDate([Время].[Дата].[(All)], [Время].[Дата].currentmember), [Measures].[ДвижКолво]) [ОстатокСумма]: sum(PeriodsToDate([Время].[Дата].[(All)], [Время].[Дата].currentmember), [Measures].[ДвижСумма]) |
Далее смотрим формулу оборачиваемости. Оборот (дн) = Средний товарный запас / Средний объем продаж за выбранный период.
в mdx для вычисления использую простую формулу:
по количеству: AVG(DESCENDANTS([Время].[Дата].CurrentMember, [Время].[Дата].[День]), [Measures].[ОстатокКолво]) / AVG(DESCENDANTS([Время].[Дата].CurrentMember, [Время].[Дата].[День]), [Measures].[ПродажиКолво]) в денежном выражении: AVG(DESCENDANTS([Время].[Дата].CurrentMember, [Время].[Дата].[День]), [Measures].[ОстатокСумма]) / AVG(DESCENDANTS([Время].[Дата].CurrentMember, [Время].[Дата].[День]), [Measures].[ПродажиСебестоимость]) |
где [ПродажиКолво] и [ПродажиСебестоимость], соответствующие меры куба.
Проблема заключается в очень долгом построении отчета на основании данных куба при использовании данных вычислений, если сравнивать с другими мерами и вычислениями. Понимаю, что функция avg() может быть очень требовательной к ресурсам, но есть ли подходы, с помощью которых можно увеличить скорость обработки?
+ система |