Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / OLAP и DWH Новый топик    Ответить
 SSAS 2012, расчет сумм по группировкам очень долгий, как ускорить?  [new]
Pvase
Member

Откуда:
Сообщений: 962
Надо в отчете получить продажи в разрезе Типов каналов сбыта - [ТипыКС].[ТипКС], Каналов Сбыта - [КС].[Канал сбыта], Брендов - [Бренды].[Бренд]. Для каждой группы надо получить долю в доходе группы. Т.е. для группы 1-го уровня (Типов каналов сбыта) надо получить общий итог по всем 3-м группам, для группы второго уровня надо получить данные по каждому элементу (Типов каналов сбыта) и по всем Каналам сбыта и брендам, для группы третьего уровня - по каждому типу каналов сбыта и по каждому каналу сбыта, но по всем брендам:

Сделал такой запрос чтобы получить доходы по всем уровням трех группировок:
WITH

MEMBER [Measures].[Себестоимость доставка] AS 
	[Measures].[Себестоимость Затраты Дол] - [Measures].[Себестоимость Дол]

MEMBER [Measures].[Доход Доля ТипКС] AS 
      Sum(
        ([ТипыКС].[ТипКС].[All],[КС].[Канал сбыта].[All],[Бренды].[Бренд].[All]
		)
       ,[Measures].[Доход Дол])

MEMBER [Measures].[Доход Доля ТипКС КС] AS 
      Sum(
        ([ТипыКС].[ТипКС].[All],[КС].[Канал сбыта].[All],[Бренды].[Бренд].CurrentMember
		)
       ,[Measures].[Доход Дол])

MEMBER [Measures].[Доход Доля ТипКС КС Бренд] AS 
      Sum(
        ([ТипыКС].[ТипКС].[All],[КС].[Канал сбыта].CurrentMember,[Бренды].[Бренд].CurrentMember
		)
       ,[Measures].[Доход Дол])
 

SELECT 
  NON EMPTY 
    {
    
     [Measures].[Доход Дол]
     ,[Measures].[Прибыль С Затратами Дол]
     ,[Measures].[Количество]
     ,[Measures].[Себестоимость Дол]
     ,[Measures].[Себестоимость Затраты Дол]
     ,[Measures].[Себестоимость доставка]
     ,[Measures].[Доход Доля ТипКС]
     ,[Measures].[Доход Доля ТипКС КС]
     ,[Measures].[Доход Доля ТипКС КС Бренд]
    } ON COLUMNS
 ,NON EMPTY
	{
    ([ТипыКС].[ТипКС].Children,
	[КС].[Канал сбыта].Children
	,[Бренды].[Бренд].Children
	)
	} ON ROWS

FROM 
	[Нов_Продажи]
WHERE 
  ([Предприятия].[Группа-Предприятие].&[Фирма1],[Календарь].[Год-Месяц].[Год].&[2015-01-01T00:00:00].&[2015-10-01T00:00:00]
)


Он выполняется очень долго. Если убрать расчетные поле [Measures].[Доход Доля ТипКС] ,[Measures].[Доход Доля ТипКС КС] ,[Measures].[Доход Доля ТипКС КС Бренд] из выборки - запрос выполняется за 5 секунд, если оставить - выполняется десятки минут.
Подскажите может есть решение ускорить такой запрос? Заранее спасибо.
23 ноя 15, 11:51    [18458543]     Ответить | Цитировать Сообщить модератору
 Re: SSAS 2012, расчет сумм по группировкам очень долгий, как ускорить?  [new]
mishanya3624
Member

Откуда:
Сообщений: 794
Pvase,

Соседняя тема, думаю в помощь - http://www.sql.ru/forum/1184278/directquery-i-excel
23 ноя 15, 12:06    [18458688]     Ответить | Цитировать Сообщить модератору
 Re: SSAS 2012, расчет сумм по группировкам очень долгий, как ускорить?  [new]
mishanya3624
Member

Откуда:
Сообщений: 794
А что, если твои расчетные меры посчитать каждую в стороннем кубе например и уже делать выборку из 3 кубов, то есть каждый будет считать отдельную КС и аккумулировать данные в одном итоговом кубе.
так мысля, пока гуру заняты.
23 ноя 15, 14:13    [18459590]     Ответить | Цитировать Сообщить модератору
 Re: SSAS 2012, расчет сумм по группировкам очень долгий, как ускорить?  [new]
Pvase
Member

Откуда:
Сообщений: 962
Пока решил так. Вынес расчет в КУб как расчетные поля, формулу расчета изменил:



MEMBER [Measures].[Доход Доля ТипКС] AS 
      IIF([Measures].[Доход Дол] <> 0,Sum(
        ([ТипыКС].[ТипКС].[All],[КС].[Канал сбыта].[All],[Бренды].[Бренд].[All]
		)
       ,[Measures].[Доход Дол]),NULL)

MEMBER [Measures].[Доход Доля ТипКС КС] AS 
      IIF([Measures].[Доход Дол] <> 0,Sum(
        ([ТипыКС].[ТипКС].[All],[КС].[Канал сбыта].[All],[Бренды].[Бренд].CurrentMember
		)
       ,[Measures].[Доход Дол]),NULL)

MEMBER [Measures].[Доход Доля ТипКС КС Бренд] AS 
      IIF([Measures].[Доход Дол] <> 0,Sum(
        ([ТипыКС].[ТипКС].[All],[КС].[Канал сбыта].CurrentMember,[Бренды].[Бренд].CurrentMember
		)
       ,[Measures].[Доход Дол]),NULL)


Что позволило избавиться от итогов по данным где не было продаж.
23 ноя 15, 16:37    [18460631]     Ответить | Цитировать Сообщить модератору
Все форумы / OLAP и DWH Ответить