Хитрость №1. Проектирование DWH и кубов на MS SQL/SSAS: мера по-умолчанию

добавлено: 19 мар 12
понравилось:0
просмотров: 2958
комментов: 3

теги:

Автор: Критик

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

Поэтому я решил их опубликовать с кратким описанием. Часть где-то найдена, часть придумана. Возможно кому-то пригодится. Необходимое ПО - SSAS 2005+



Мера по-умолчанию

Обычно SSAS выбирает меру по-умолчанию по своему внутреннему алгоритму. Алгоритм выбора нам совершенно не важен, поэтому его рассматривать не будем, нам важен сам факт выбора. Оказалось, что на очень больших кубах это является весьма вредным для производительности.

Рассмотрим на примере: допустим пользователь в Excel подключается к кубу и просто вытаскивает измерение в строки или в столбцы. Движок SSAS тут же начинает сканирование всех секций/агрегатов для определение наличия в них элементов измерения. Если куб большой, то нагрузка весьма и весьма существенная. Причем никакие цифры пользователем еще не получены, ведь пока вытаскиваются только измерения! А если таких измерений нужно вытащить 5, 7, 10, то просматривается явная опасность для физической целостности специалиста по кубам.

Чтобы этого избежать, можно создать null-меру по-умолчанию. Делается это на вкладке Calculations вот таким образом:
CALCULATE;

CREATE MEMBER CURRENTCUBE.[Measures].NullMember AS null, VISIBLE = 0;  
ALTER CUBE CURRENTCUBE UPDATE DIMENSION Measures, Default_Member = [MEASURES].NullMember; 


Теперь до того, как пользователь вытащит в сводную таблицу какую-либо меру, все вычисления будут проходить относительно этого служебного элемента. А так как он только один, то это будет практически мгновенно.

Комментарии




Необходимо войти на сайт, чтобы оставлять комментарии