Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / SSAS 2012 Оптимизация Вычисления медианы / 4 сообщений из 4, страница 1 из 1
14.07.2017, 18:29
    #39489307
Yagrus2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2012 Оптимизация Вычисления медианы
Hello world!
В MDX есть специальная функция Median.
У нее такой синтаксис: Median(set_expression , numeric_expression)
В своем кубе создал вычисление, которое рассчитывает медиану.

Код: sql
1.
2.
CREATE MEMBER CURRENTCUBE.[measures].[Median LT] 
AS Median([Закупка].[Document Key].[Document Key], [Measures].[Avg LT]);


Оно работает правильно, но очень медленно. В MDXStudio запускаю запрос
Код: sql
1.
2.
3.
4.
SELECT	[measures].[Median LT] ON 0,
	[Контрагент].[Counteragent Key].[Counteragent Key] ON 1
FROM	[TD Sch]
WHERE	[Дата Заказа].[Year].&[2017]


Таблица ниже, показывает его производительность
Time : 58 sec 629 msCalc covers : 0Cells calculated : 20408768Sonar subcubes : 3NON EMPTYs : 0Autoexists : 1EXISTINGs : 0SE queries : 1Flat cache insert : 0Cache hits : 2Cache misses : 0Cache inserts : 0Cache lookups : 2Memory Usage KB : -220
Далее прикрутил функция NONEMPTY
Код: sql
1.
2.
CREATE MEMBER CURRENTCUBE.[measures].[Median LT] 
AS Median(NONEMPTY([Закупка].[Document Key].[Document Key], [Measures].[Sum LT]), [Measures].[Sum LT])


Тот же запрос отработал уже с такой производительностью. Показатели стали лучше.
Time : 484 msCalc covers : 0Cells calculated : 7488Sonar subcubes : 668NON EMPTYs : 666Autoexists : 1EXISTINGs : 0SE queries : 666Flat cache insert : 0Cache hits : 668Cache misses : 0Cache inserts : 0Cache lookups : 668Memory Usage KB : 11552
А вот накидывание EXISTING на [Закупка].[Document Key].[Document Key] ничего не дало.
Код: sql
1.
Median(EXISTING([Закупка].[Document Key].[Document Key]), [Measures].[Sum LT])



Предполагал, что EXISTING переведет контекст на Document-ты 2017 года. Интересно, почему это не произошло?

Подскажите, как еще ограничить набор, используемый в качестве первого аргумента у ф-ции Median?
То есть что бы он зависел от условия в WHERE?
...
Рейтинг: 0 / 0
14.07.2017, 19:20
    #39489335
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2012 Оптимизация Вычисления медианы
Yagrus2,

В документации все это описано очень хорошо, читайте в следующей последовательности:
Key Concepts in MDX
Autoexists
Exists
Existing
и тогда все станет ясно.
...
Рейтинг: 0 / 0
27.07.2017, 10:09
    #39495773
Yagrus2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2012 Оптимизация Вычисления медианы
up
...
Рейтинг: 0 / 0
29.07.2017, 22:43
    #39497085
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2012 Оптимизация Вычисления медианы
Yagrus2,


EXISTING переведет контекст на Document-ты 2017 - ошибочное предположение


EXISTING используестя для отбрасываения элементов по контексту related attiributes того же измерения
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / SSAS 2012 Оптимизация Вычисления медианы / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]