powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Тока не бейте
38 сообщений из 38, показаны все 2 страниц
Тока не бейте
    #32833499
Zohar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос к администраторам MS AS: задача старая как мир: сделать куб, в котором объединить на уровне измерений факты из разных источников:
в первой витрине - скажем продажи - 5 мер и 40 измерений;
во второй - план продаж - 3 меры и 5 измерений (такие же как и в первой витрине)

есть первый способ (пока так и обходимся) - сделать объединенное View факта и плана и на ней построить один MS AS.

хочется узнать про другой способ - есть ли возможность на основе 2 таблиц фактов (из разных источников - поскольку планы часто меняются - особенно в процессе планирования) создать один куб - в котором были бы доступны меры из первой и второй витрины. Кто как обходится ?
...
Рейтинг: 0 / 0
Тока не бейте
    #32833517
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZoharВопрос к администраторам MS AS: задача старая как мир: сделать куб, в котором объединить на уровне измерений факты из разных источников:
в первой витрине - скажем продажи - 5 мер и 40 измерений;
во второй - план продаж - 3 меры и 5 измерений (такие же как и в первой витрине)

есть первый способ (пока так и обходимся) - сделать объединенное View факта и плана и на ней построить один MS AS.

хочется узнать про другой способ - есть ли возможность на основе 2 таблиц фактов (из разных источников - поскольку планы часто меняются - особенно в процессе планирования) создать один куб - в котором были бы доступны меры из первой и второй витрины. Кто как обходится ?

Я делал view на "Ist" таблицу фактов, в котором показывал только поля, соответствующие мерам и измерениям, присутствующим только в "Plan" таблицe фактов, а затем строил еще одно View которое делало Union на Plan-Table и Ist-View. Это и служило "таблицей фактов" для куба "Ist-Plan". (Если есть AS2KEE, то можно UNION не делать, а развести по партициям.
...
Рейтинг: 0 / 0
Тока не бейте
    #32834262
Zohar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Backfire - Хорошая мысль, но тогда получается, что из факта теряется часть измерений, без которых ну никак.
Трабл в том, что таблица фактов - на оперативном сервере доступна в определенные часы - ночью в основном и каждый раз ее запускать - нет возможности. А планы меняются ну чуть ли не каждый день - что заставляет перестраивать кубы регулярно. Может быть есть доки по этому вопросу или рекомендации MS, как можно строить хранилища на MS AS, если обязательно необходимо все показатели складывать в одну витрину ?

"Если есть AS2KEE, то можно UNION не делать, а развести по партициям." - что такое AS2KEE ??? Где достать и как работать, поподробнее пжст.
...
Рейтинг: 0 / 0
Тока не бейте
    #32834267
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А почему не построить виртуальный куб ? Или я чего-то упустил ?

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
Тока не бейте
    #32834321
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZoharBackfire - Хорошая мысль, но тогда получается, что из факта теряется часть измерений, без которых ну никак.
Трабл в том, что таблица фактов - на оперативном сервере доступна в определенные часы - ночью в основном и каждый раз ее запускать - нет возможности. А планы меняются ну чуть ли не каждый день - что заставляет перестраивать кубы регулярно. Может быть есть доки по этому вопросу или рекомендации MS, как можно строить хранилища на MS AS, если обязательно необходимо все показатели складывать в одну витрину ?

"Если есть AS2KEE, то можно UNION не делать, а развести по партициям." - что такое AS2KEE ??? Где достать и как работать, поподробнее пжст.

Analysis Services 2000 Enterprise Edition.
...
Рейтинг: 0 / 0
Тока не бейте
    #32834333
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MoshaА почему не построить виртуальный куб ? Или я чего-то упустил ?

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights

Я тоже сначала строил виртуальный куб, но проблема или неудобство было в том, что все меры, которые есть и в плане и в факте (сумма продаж, например) надо было заменить Calculated Member, со всеми вытекающими последствиями для любимого NonEmptyCrossJoin и т.п.
...
Рейтинг: 0 / 0
Тока не бейте
    #32834367
Zohar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поподробнее про виртуальный куб:
как я понял - мне нужно сделать 2 физических куба - факт продаж и план
а потом строю виртуальный куб ? где эти факты объединяются ? Так ?
В таком случае как происходит связка между измерениями ? Как сервер понимает, что план по группе продуктов связан с фактом по той же группе продуктов ? Какие нибудь есть проблемы с производительностью в таком случае ?
...
Рейтинг: 0 / 0
Тока не бейте
    #32834385
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZoharПоподробнее про виртуальный куб:
как я понял - мне нужно сделать 2 физических куба - факт продаж и план
а потом строю виртуальный куб ? где эти факты объединяются ? Так ?
В таком случае как происходит связка между измерениями ? Как сервер понимает, что план по группе продуктов связан с фактом по той же группе продуктов ? Какие нибудь есть проблемы с производительностью в таком случае ?

Очень просто. Вводите измерение "Сценарий", членами которого является "Факт" и множество ваших "Планов".
...
Рейтинг: 0 / 0
Тока не бейте
    #32834395
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
backfireЯ тоже сначала строил виртуальный куб, но проблема или неудобство было в том, что все меры, которые есть и в плане и в факте (сумма продаж, например) надо было заменить Calculated Member, со всеми вытекающими последствиями для любимого NonEmptyCrossJoin и т.п.
Virtual cubes для того и придуманы чтобы сливать данные с разными гранулярностями в один куб. А partitions придуманы для того чтобы сливать вместе данные из разных источников, но с одинаковой гранулярностью. Ваш метод аннилирует идею работы с разными гранулярностями, т.к. он урезает большую таблицу до гранулярности маленькой. А что если в маленькой есть измерение которого нет в большой ? А что если по Actual надо делать настоящий детальный анализ - идти в другой куб. Одним словом мне вся эта идея не нравится - она идет против дизайна AS2K.
Что касается проблем с NonEmptyCrossJoin - то эти проблемы все решаемы, да и наверное Zohar не пользуется такими "оптимизациями" - так что он может воспользоваться правильным подходом а не делать hacks.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
Тока не бейте
    #32834416
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mosha backfireЯ тоже сначала строил виртуальный куб, но проблема или неудобство было в том, что все меры, которые есть и в плане и в факте (сумма продаж, например) надо было заменить Calculated Member, со всеми вытекающими последствиями для любимого NonEmptyCrossJoin и т.п.
Virtual cubes для того и придуманы чтобы сливать данные с разными гранулярностями в один куб. А partitions придуманы для того чтобы сливать вместе данные из разных источников, но с одинаковой гранулярностью. Ваш метод аннилирует идею работы с разными гранулярностями, т.к. он урезает большую таблицу до гранулярности маленькой. А что если в маленькой есть измерение которого нет в большой ? А что если по Actual надо делать настоящий детальный анализ - идти в другой куб. Одним словом мне вся эта идея не нравится - она идет против дизайна AS2K.
Что касается проблем с NonEmptyCrossJoin - то эти проблемы все решаемы, да и наверное Zohar не пользуется такими "оптимизациями" - так что он может воспользоваться правильным подходом а не делать hacks.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights


Пускай это хак, но и NonEmptyCrossJoin, с вашего позволения тоже хак, все это попытки выжать максимум производительности.

А то что я зарезал все детали "Ist", не имеющиеся в "Plan", так это тоже не от хорошей жизни, а от безвыходности. Я пробовал иначе, но "обик здох", на моих объемах.
...
Рейтинг: 0 / 0
Тока не бейте
    #32834439
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну я согласен, иногда надо делать хаки чтобы выжать performance - это собственно наша вина, performance должен быть всегда супер без всяких хаков, но мы тоже не идеальны. Просто если Вам пришлось в какой-то конкретной ситуации применить хак - то это не означает, что все остальные тоже должны его применять, скорее всего у них ситуация другая и от этого хака им будет только хуже.
Так что Zohar - мой совет - виртуальный куб - но решать конечно Вам.

P.S. backfire: А что Вам теперь мешает ставить в фильтр NonEmptyCrossJoin настоящий measure, а не calculated member с ValidMeasure ?

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
Тока не бейте
    #32834443
Zohar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочу все-таки попробовать - по принципу, как задумывалось - а потом либо hack, либо отказаться совсем, что касается моих объемов - 10 000 000 записей в факте, вроде обычный куб считался минут 15.
...
Рейтинг: 0 / 0
Тока не бейте
    #32834469
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZoharХочу все-таки попробовать - по принципу, как задумывалось - а потом либо hack, либо отказаться совсем, что касается моих объемов - 10 000 000 записей в факте, вроде обычный куб считался минут 15.

А сколько у вас физических мер и сколько измерений, сколько членов в измерениях, какая степень аггрегации?
...
Рейтинг: 0 / 0
Тока не бейте
    #32834471
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mosha
P.S. backfire: А что Вам теперь мешает ставить в фильтр NonEmptyCrossJoin настоящий measure, а не calculated member с ValidMeasure ?



Я не понял, что значит "теперь"?
...
Рейтинг: 0 / 0
Тока не бейте
    #32834475
Zohar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос к Моше - вообще можно ли как-то обойтись без создания аналитических marts ? А использовать - таблицы с фактами и индексами и справочники вокруг них, например - проблема многих аналитиков - трудность управления метаслоем данных, поэтому идут по самому простому варианту - делают одну общую view на оперативных серверах, закладывают все измерения из справочников и на ней строят кубы, потом жалуются на производительность - как кубов, так и времени построения. Как грамотно ? Сначала сделать shared dimencions - наиболее общие измерения для всех ? Но как потом привязать к таблице с фактами ?
...
Рейтинг: 0 / 0
Тока не бейте
    #32834866
Zohar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мер - 5 (с планом 6)
измерений 7
самое большое измерение - содержит 5 уровней вложенности (одно)
все остальные: 2-3 уровня
количестов фактов - подошло до 10 000 000 записей.
...
Рейтинг: 0 / 0
Тока не бейте
    #32834894
Zohar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попутно еще вопрос к Backfire и Mosha к политике построения справочников - как лучше всего делать - сделать как можно больше Shared Dimension и использовать для всех кубов ? А в таблицах фактов иметь только индексы ? Или только делать индивидуальные dimension для каждого из кубов ?

Мне кажется неудобным делать, скажем измерение время или продукты для каждого куба каждый раз, кроме того, проблема с обновлением справочников ?
Вообще - для чего предполагалось подобное разделение на Shared Dimension и local Dimensions ?

Еще попутный вопрос - названия измерений и мер не любит - символы ()//,-._ Что неудобно - например - хочется назвать посимпотичнее меру - Вес продукта (т.), чтобы в отчетности выглядело классно. Это как-то обходится? или есть места, где обозначаются характеристики мер и на клиенте это-как-то отображается ?
...
Рейтинг: 0 / 0
Тока не бейте
    #32835174
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZoharПопутно еще вопрос к Backfire и Mosha к политике построения справочников - как лучше всего делать - сделать как можно больше Shared Dimension и использовать для всех кубов ? А в таблицах фактов иметь только индексы ? Или только делать индивидуальные dimension для каждого из кубов?

У меня все измерения Shared и я не вижу особой необходимости делать их приватными.
...
Рейтинг: 0 / 0
Тока не бейте
    #32836041
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
backfireЯ не понял, что значит "теперь"?
Ну после того как мы починили баг в NonEmptyCrossJoin на virtual cubes, когда measures в фильтре, который Вы на этом форуме зарепортили несколько месяцев назад.

ZoharВопрос к Моше - вообще можно ли как-то обойтись без создания аналитических marts ? А использовать - таблицы с фактами и индексами и справочники вокруг них, например - проблема многих аналитиков - трудность управления метаслоем данных, поэтому идут по самому простому варианту - делают одну общую view на оперативных серверах, закладывают все измерения из справочников и на ней строят кубы, потом жалуются на производительность - как кубов, так и времени построения. Как грамотно ? Сначала сделать shared dimencions - наиболее общие измерения для всех ? Но как потом привязать к таблице с фактами ?
Я не очень понял вопрос, наверное у меня с терминологией проблемы - аналитические marts, справочники и метаслои данных - мне это все незнакомые понятия :(

ZoharПопутно еще вопрос к Backfire и Mosha к политике построения справочников - как лучше всего делать - сделать как можно больше Shared Dimension и использовать для всех кубов ? А в таблицах фактов иметь только индексы ?
Да - это классический data warehouse.

ZoharВообще - для чего предполагалось подобное разделение на Shared Dimension и local Dimensions ?
Private Dimensions давали две основные вещи:
1. INNER JOIN с fact table - т.е. members для которых нет записей не попадают в измерение
2. Процессить fact table & dimensions in single scan
3. Local cubes (там всегда private dimensions)

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
Тока не бейте
    #32836043
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mosha backfireЯ не понял, что значит "теперь"?
Ну после того как мы починили баг в NonEmptyCrossJoin на virtual cubes, когда measures в фильтре, который Вы на этом форуме зарепортили несколько месяцев назад.


Где пофиксили? Вы пообещали это сделать в sp4, но когда он выйдет, думаю что даже Вы не знаете? Про Юкон я вообще пока молчу.
...
Рейтинг: 0 / 0
Тока не бейте
    #32836062
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
backfireВы пообещали это сделать в sp4
SP4 не за горами. SP4 Beta уже по моему вышла или выйдет на днях.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
Тока не бейте
    #32836105
clrscr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
backfireУ меня все измерения Shared и я не вижу особой необходимости делать их приватными.
Уважаемый backfire, то есть Вы делаете измерение Shared, даже если оно участвует только в одном единственном кубе? Тогда, получается, имена измерений должны включать имена кубов, где используются. Правильно?
Интересно просто, существует ли какая-то общепринятая система именования :)
...
Рейтинг: 0 / 0
Тока не бейте
    #32836319
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
clrscrУважаемый backfire, то есть Вы делаете измерение Shared, даже если оно участвует только в одном единственном кубе? Тогда, получается, имена измерений должны включать имена кубов, где используются. Правильно?
Интересно просто, существует ли какая-то общепринятая система именования :)

1. Пока что у меня такого не было, что 1 из измерений использовалось только в 1 кубе.

2. Не вижу в этом совершенно никакой необходимости. Подкрепите примером, если вас не затруднит.
...
Рейтинг: 0 / 0
Тока не бейте
    #32836611
Zohar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторИнтересно просто, существует ли какая-то общепринятая система именования :)
Да, затронули серьезную тему - юзерам, которые едва знакомы с OLAP - например коммерческие, клиентские службы (ну совсем не тех. специалисты), но собственно которым и нужен OLAP - очень трудно сразу понять логику кубов. Приходится очень долго и нудно объяснять что с чем связано, может быть существуют средства документирования кубов - в частности измерений и степеней вложенности, обратившись к которому - конечный пользователь может увидеть возможности - drill down, порой люди даже не могут сформулировать задачу, но вращая (slice) кубы - находят что им нужно, либо осознают более конкретно задачу.
Может быть есть в MS AS - возможность включать текстовые описания раскрываемых измерений - было бы здорово - делаешь drill down - появляется новый подуровень и выскакивает подсказка на клиенте (типа помошника) - с описанием уровня или характеристикой.
Вообще - кто-нибудь озадачивался подобным вопросом - ведь популярность OLAP зависит от его понимания и наглядности. Порой работая с незнакомыми кубами - трудно разобраться - какую информацию они содержат, а главное - для кого он предназначался и на какие вопросы отвечал.
...
Рейтинг: 0 / 0
Тока не бейте
    #32836949
clrscr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To backfire
Тема на самом деле пересекается со вчерашней веткой Go

Если Вы не против, лучше отвечу там :)
...
Рейтинг: 0 / 0
Тока не бейте
    #32837221
Zohar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как решить задачу, я понял - сделать shared dimencions, два физических куба и виртуальный, в котором по shared dimencion объединяются факты из разных кубов.
Теперь вопрос переформулирую - как грамотно организовать shared dimencions и локальные кубы с фактом и планом:

есть справочник товаров:
ID бренда
Название бренда
ID группы товаров
Название группы товаров
ID Продукта
Название продукта

есть факт:
Дата
ID продукта
Количество
Вес продукта

есть план:
Месяц
ID Группы товаров
Вес продукта

В отчете хочется конечно же видеть - вес продукта - Факт и План, агрегированный до группы товаров (при желании хочется спуститься до даты - пусть и без плана) или посмотрить количество - в факте.
Как грамотнее организовать кубы и shared измерения ?
Также хочется видеть План
...
Рейтинг: 0 / 0
Тока не бейте
    #32838097
clrscr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Zohar

Я думаю в кубе план в общем измерении Товар уровень Название продукта должен быть disabled. Аналогично уровень Дата (День) в измерении Время. А дальше просто объединить план и факт в виртуальный куб по этим измерениям. В нем Вы будете видеть план и факт с соответствующей для них детализацией.
...
Рейтинг: 0 / 0
Тока не бейте
    #32838657
Fpmip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я сталкивался с ситуацией, когда измерения с disabled уровнями работали неоправданно долго в сравнении с вариантом, когда эти уровни были просто удалены. (Имелось пара измерений, каждое порядка 10'000 элементов на листовом уровне).
В качестве клиента использовался Excel PivotTable 2002 (и MDX в обоих случаях, вроде как, был ~ одинаковый...)

Если кто-нибудь сталкивался, в чем может быть причина?
...
Рейтинг: 0 / 0
Тока не бейте
    #32840385
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FpmipЯ сталкивался с ситуацией, когда измерения с disabled уровнями работали неоправданно долго в сравнении с вариантом, когда эти уровни были просто удалены.
Это интересно - у Вас не сохранилось repro для этой ситуации ? Потому что внутри engine, disabled levels проимплементированы так как будто их и не было.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
Тока не бейте
    #32842244
Zohar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, посоветуйте фундаментальный book по созданию хранилищь на MS AS - используем Cognos, но для больших кубов - хочу сварить супермегакуб на сервере, устроить сравнение на одних и тех же данных с чем удобнее работать, но нужна теория. Можно и на аглицком.
...
Рейтинг: 0 / 0
Тока не бейте
    #32842318
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZoharКоллеги, посоветуйте фундаментальный book по созданию хранилищь на MS AS - используем Cognos, но для больших кубов - хочу сварить супермегакуб на сервере, устроить сравнение на одних и тех же данных с чем удобнее работать, но нужна теория. Можно и на аглицком.

На AS создаются OLAP решения, а не хранилища.

А по хранилищам читайте Кимбала, это фундаментально.
...
Рейтинг: 0 / 0
Тока не бейте
    #32842914
U
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
U
Гость
to Zohar
Извиняюсь, но
У Васс головой все впорядке?
...
Рейтинг: 0 / 0
Тока не бейте
    #32843105
Zohar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторto Zohar
Извиняюсь, но
У Васс головой все впорядке?

Все в порядке и с головой и с ногами, в чем собственно трабл ?
...
Рейтинг: 0 / 0
Тока не бейте
    #32843124
Zohar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторНа AS создаются OLAP решения, а не хранилища.

А по хранилищам читайте Кимбала, это фундаментально.

Я только знакомлюсь с MS AS и полагал, что его возможностей достаточно для создания и поддержания упорядоченных структур с данными для анализа как в
Oracle db + Oracle warehouse builder
Как и где данные храняться, мне как пользователю - все равно, но видно много ожидать от MS AS не стоит.
...
Рейтинг: 0 / 0
Тока не бейте
    #32843304
Пашка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боюсь, Zohar, что все-таки побьют ;-)
...
Рейтинг: 0 / 0
Тока не бейте
    #32844503
Zohar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Состряпал куб с shared dimension, все данные взял из View на SQL - очень даже радует с точки зрения скорости поработаю, посмотрю. Все-таки - кубы на MS AS - побыстрее работают, чем на Cognos и расчет шустренько так. (таблица фактов под 10 000 000).
...
Рейтинг: 0 / 0
Тока не бейте
    #33050626
Fpmip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу извинить, что возвращаюсь к столь старой теме... :))
Но по случайности, просматривая это давнишнее обсуждение, понял, что не ответил на вопрос Моши (который непосредственно с первоначальной темой не связан):
Mosha Fpmip
Я сталкивался с ситуацией, когда измерения с disabled уровнями работали неоправданно долго в сравнении с вариантом, когда эти уровни были просто удалены.

Это интересно - у Вас не сохранилось repro для этой ситуации ? Потому что внутри engine, disabled levels проимплементированы так как будто их и не было.

Моша

Repro действительно есть.
(Точнее, речь идет о свойстве Visible , а не Disabled уровня, поскольку надо было скрыть промежуточный уровень, чего Disabled сделать не позволяет).
Это достаточно абстрактный пример, который создавался для проверки различных гипотез, поэтому он достаточно легко обозрим (см. вложенный рисунок).

Тестовая БД была наполнена ~10'000 договоров, ~10'000 контактов и ~10'000 фактов. Договора и контакты у различных филиалов (почти) не пересекаются. Таким образом, имеем сильно разреженный куб.
Кроме измерений Договора и Контакты , содержащих уровень Филиал , были сделаны (физические) измерения Договора Листья и Контакты Листья .

Теперь собственно эксперимент:
Скрываем ( Visible =True) уровень Филиал в измерениях Договора и Контакты и рассматриваем 2 варианта (использовался Excel 2002 PivotTable):

1. На ось строк выведены (CROSSJOIN) измерения Договора Листья и Контакты Листья .
Обновление отчета: 36-38 сек. (причем только треть на собственно запрос, остальное -- на заполнение Excel'ем сводной таблицы данными).

2. На ось строк выведены (CROSSJOIN) измерения Договора и Контакты (со скрытым уровнем Филиал ).
Обновление отчета: ~ 1 час 25 мин.

Причем MDX-запрос в обоих случаях одинаковый (с точностью до названий измерений):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SELECT
  NON EMPTY
  CROSSJOIN(
    HIERARCHIZE(
      AddCalculatedMembers(
        {DrillDownLevel({[Контакты].[All Контакты]})}
      )
    ),
    HIERARCHIZE(
      AddCalculatedMembers(
        {DrillDownLevel({[Договора].[All Договора]})}
      )
    )
  )
  DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS
FROM
  [Продажи]
WHERE
  ([Measures].[Сумма], [Периоды].[All Периоды].[ 2004 ].[January])

Повторюсь, что речь идет о свойстве Visible , а не Disabled уровня.
...
Рейтинг: 0 / 0
Тока не бейте
    #33051650
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FpmipRepro действительно есть.
(Точнее, речь идет о свойстве Visible, а не Disabled уровня, поскольку надо было скрыть промежуточный уровень, чего Disabled сделать не позволяет).
Спасибо - это действительно большая разница сделан level disabled или просто unvisible. Как я говорил выше - disabled level, это все равно как его и не было, а вот unvisible - он есть, только в schema rowsets его не видно. Поэтому разница в производительности в данном случае обьяснима.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
38 сообщений из 38, показаны все 2 страниц
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Тока не бейте
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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