20.1.23

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

http://www.sql.ru/blogs/dwh/1228

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

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

Поэтому я решил их опубликовать с кратким описанием. Часть где-то найдена, часть придумана. Возможно кому-то пригодится. Необходимое ПО - 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; 



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

Комментариев нет:

Отправить комментарий