Эффективный способ получения связанных групп мер с заданным измерением в VB.NET - PullRequest
0 голосов
/ 30 марта 2012

Я использую VB.NET для подключения и анализа данных из базы данных служб Analysis Services.

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

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

Единственное, о чем я могу думать, - это перебрать все группы мер внутри куба и проверить,он содержит ссылку на рассматриваемое измерение:

Dim dimID As String = "SOME_DIM_ID"
Dim relatedMeasureGroups As New List(Of Amo.MeasureGroup)
For Each mg As Amo.MeasureGroup In _cube.MeasureGroups
    If mg.Dimensions.Contains(dimID) Then
        relatedMeasureGroups.Add(mg)
        Continue For
    End If
Next

Это работает, но, очевидно, очень медленно и неэффективно.Есть ли более прямой путь, которого я просто не вижу?


РЕДАКТИРОВАТЬ: я должен сказать, мне нужно сделать это, потому что я пытаюсь найти все потенциальные Мера многих ко многимГруппы для измерения .Как вы можете сказать, то, как я это делаю, немного ручное (найдите группы мер, связанные с начальным измерением, найдите все измерения, связанные с ними, и еще раз найдите все группы мер, связанные с те ), так что если есть более прямой способ решения этой проблемы, это может обойти мою потребность в решении исходной проблемы.

1 Ответ

0 голосов
/ 30 марта 2012

Вы можете запросить SSAS DMV ... $ SYSTEM.MDSCHEMA_MEASUREGROUP_DIMENSIONS

SELECT  *
FROM    $SYSTEM.MDSCHEMA_MEASUREGROUP_DIMENSIONS
WHERE   MEASUREGROUP_CARDINALITY = 'MANY' AND
        DIMENSION_CARDINALITY = 'MANY' AND
        [DIMENSION_UNIQUE_NAME] = '[Business Unit]'

Также это может пригодиться -> http://www.ssas -info.com/VidasMatelisBlog / wp-content / uploads / 2008/07 / mdschema.jpg

Вот XMLA-версия ...

<Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
    <RequestType>MDSCHEMA_MEASUREGROUP_DIMENSIONS</RequestType>
    <Restrictions>
        <RestrictionList xmlns="urn:schemas-microsoft-com:xml-analysis">
            <DIMENSION_UNIQUE_NAME>[<<insert dimension>>]</DIMENSION_UNIQUE_NAME>
        </RestrictionList>
    </Restrictions>
    <Properties/>
</Discover>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...