Я занят вырыванием своих волос с помощью этого. У меня есть куб с 1 фактом и около 9 измерений. Таблица фактов содержит около 120 тыс. Строк, поэтому она не является большой БД любыми средствами.SSAS Cube design - MDX очень медленно
Проблема заключается в том, что при использовании программного обеспечения для отчетности, которое я использую (Microstrategy), MDX, который он генерирует, захватывает все данные и использует их как источник данных (вместо генерации MDX при манипулировании отчетами). В любом случае при добавлении нескольких полей запрос быстро становится непригодным и на самом деле заканчивается память. Я подозреваю, что это имеет какое-то отношение к моему дизайну куба.
Во-первых, он выполняет кросс-соединение по всем атрибутам, даже если они находятся в одном измерении, как будто он не понимает, что между ними существует взаимосвязь.
Я играл с атрибутами отношений в BIDS (делая отношения жесткими, где это возможно), но это, похоже, не имеет никакого значения.
Сгенерированный MDX показан ниже. У меня нет возможности настроить MDX, но я уверен, что не говорю, что отношения правильные.
Я пробовал размещать на сайте поддержки Microstrategy без лишней радости.
Любая помощь будет принята с благодарностью.
Благодаря
WITH SET AS '{[Dim Date].[Date].[Date].AllMembers}'
...
(all my dimensions appear here)
...
select {[Measures].[Total Purchases], [Measures].[New Cards Issued], [Measures].[New Applications Received], [Measures].[New Applications Declined], [Measures].[New Applications Approved], [Measures].[New Accounts Activated]} on columns,
non empty CROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN(C ROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN([dim0_select_members], [dim1_select_members]), [dim2_select_members]), [dim3_select_members]), [dim4_select_members]), [dim5_select_members]), [dim6_select_members]), [dim7_select_members]), [dim8_select_members]), [dim9_select_members]), [dim10_select_members]), [dim11_select_members]), [dim12_select_members]), [dim13_select_members]), [dim14_select_members]), [dim15_select_members]), [dim16_select_members]), [dim17_select_members]) on rows
from [Cards_Transactions]
Означает ли это, что запрос, выданный Microstrategy, содержит все меры и все атрибуты в кубе, независимо от запроса, который пользователь выдает? BTW: Analysis Services использует 'autoexists' в одном измерении. Это означает, что в одном измерении «CrossProduct» делает только доставку строк, в которых существует комбинация. Это не зависит от отношений, которые вы определяете. – FrankPl
Имеют ли атрибуты отношения родитель-потомок? Я использовал кубик SSAS в MicroStrategy в прошлом без особых проблем. – TheMacroGuru