Поделиться через


Набор строк DISCOVER_CALC_DEPENDENCY

Сообщает о зависимостях между вычислениями и об объектах, упоминаемых в этих вычислениях. Эти сведения можно использовать в клиентском приложении для сообщения о проблемах со сложными формулами и предупреждения об удалении или изменении связанных объектов. Этот набор строк можно использовать для извлечения выражений расширений интеллектуального анализа данных, используемых в мерах или вычисляемых столбцах.

Область применения: табличные модели

Столбцы наборов строк

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

Имя столбца

Индикатор типа

Ограничение

Описание

DATABASE_NAME

DBTYPE_WSTR

Да

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

С помощью этого столбца можно ограничить набор строк DISCOVER_DEPENDENCY_CALC.

OBJECT_TYPE

DBTYPE_WSTR

Да

Указывает тип объекта, для которого запрошен анализ зависимостей. Объект должен принадлежать к одному из следующих типов:

  • ACTIVE_RELATIONSHIP: активная связь

  • CALC_COLUMN: Вычисляемый столбец

  • HIERARCHY: иерархия

  • MEASURE: мера

  • RELATIONSHIP: связь

  • KPI: ключевой показатель эффективности (KPI)

С помощью этого столбца можно ограничить набор строк DISCOVER_DEPENDENCY_CALC.

QUERY

DBTYPE_WSTR

Да

В табличные модели, созданные в SQL Server 2012 SP1, вы можете включить запрос или выражение DAX, чтобы отобразить диаграмму зависимостей для этого запроса или выражения. Ограничение QUERY дает клиентским приложениям возможность определить, какие объекты используются запросом DAX.

Ограничение QUERY можно указывать в XMLA или в предложении WHERE запроса динамического административного представления. Дополнительные сведения см. в разделе «Примеры».

TABLE

DBTYPE_WSTR

Имя таблицы, содержащей объект, для которого создаются сведения о зависимостях.

OBJECT

DBTYPE_WSTR

Имя объекта, для которого создаются сведения о зависимостях. Если объект является мерой или вычисляемым столбцом, используйте имя меры. Если объект является связью, используйте имя таблицы (или измерение куба), где находится столбец, участвующий в связи.

EXPRESSION

DBTYPE_WSTR

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

REFERENCED_OBJECT_TYPE

DBTYPE_WSTR

Возвращает тип объекта, зависимого от упоминаемого объекта. Возвращаемые объекты могут принадлежать к следующим типам:

  • CALC_COLUMN: вычисляемый столбец

  • COLUMN: столбец данных

  • MEASURE: мера

  • RELATIONSHIP: связь

  • KPI: ключевой показатель эффективности (KPI)

REFERENCED_TABLE

DBTYPE_ WSTR

Имя таблицы, содержащей зависимый объект.

REFERENCED_OBJECT

DBTYPE_ WSTR

Имя объекта, зависимого от упоминаемого объекта. Для мер и вычисляемых столбцов имя меры или столбца. Для связей полное имя таблицы (или измерение куба), где находится зависимый объект.

REFERENCED_EXPRESSION

DBTYPE_WSTR

Формула в вычисляемом столбце или в измерении, зависимая от упоминаемого объекта.

Пример

Базовый синтаксис

Следующий запрос представляет собой простой запрос динамического административного представления, который возвращает значения для всех столбцов в этом наборе строк с использованием базы данных по умолчанию для текущего соединения. Этот запрос можно выполнить в окне запросов многомерных выражений и просмотреть его результаты в среде Среда Management Studio. Также можно выполнить указания, приведенные в публикации Querying PowerPivot DMVs from Excel (на английском языке), чтобы просмотреть результаты запроса динамического административного представления в Excel.

SELECT * FROM $System.DISCOVER_CALC_DEPENDENCY

Сортировка результатов

Добавьте предложение ORDER BY для сортировки набора строк по таблице или другому столбцу.

SELECT * FROM $System.DISCOVER_CALC_DEPENDENCY ORDER BY [TABLE] ASC

Фильтрация с помощью предложения WHERE

В следующем запросе показано, как добавить ограничение с помощью предложения WHERE. Следующие столбцы можно использовать в качестве фильтров запроса в предложении WHERE. Database_Name, Object_Type и Query.

SELECT * From $SYSTEM.DISCOVER_CALC_DEPENDENCY WHERE OBJECT_TYPE = 'RELATIONSHIP' OR OBJECT_TYPE = 'ACTIVE_RELATIONSHIP'

Фильтрация по мерам и вычисляемым столбцам для просмотра базовых выражений DAX

В этом запросе вы можете выбрать только меру или вычисляемый столбец, а затем просмотреть выражение DAX, которое используется в вычислении. Столбец ВЫРАЖЕНИЕ также может содержать выражения DAX. Если DISCOVER_CALC_DEPENDENCY используется для извлечения выражения расширений интеллектуального анализа данных, используемого в модели, то для этой задачи достаточно данного запроса. Возвращаются все выражения, используемые в этой модели, в порядке возрастания.

SELECT * From $SYSTEM.DISCOVER_CALC_DEPENDENCY WHERE OBJECT_TYPE = 'MEASURE' OR OBJECT_TYPE = 'CALC_COLUMN' ORDER BY [EXPRESSION] ASC

Фильтрация с помощью ЗАПРОСА

С помощью ограничения ЗАПРОСА вы можете выполнить запрос DAX, чтобы просмотреть все объекты, которые используются в этом запросе. Рассмотрим простой запрос, например «Evaluate Customer». Как следует из названия, этот запрос возвращает те строки данных о клиенте, которые создаются на основе столбцов таблицы Customer. Если выполнить DISCOVER_CALC_DEPENDENCY с ограничением QUERY, равным «Evaluate customer», то будут возвращены столбцы (или объекты), используемые в этом запросе. В данном случае это будет список столбцов таблицы Customer.

Следующий набор запросов демонстрирует синтаксис для ограничения QUERY. Эти запросы вы можете использовать для Табличной модели AdventureWorks в SQL Server 2012, чтобы просмотреть результирующий набор.

Первый запрос отображает способ задания ограничения QUERY для имен объектов, которые содержат пробелы. Второй запрос, заимствованный из раздела Выполнение запросов DAX с помощью OLE DB и ADOMD.NET, является более сложным запросом, который содержит объекты из нескольких таблиц.

ПримечаниеПримечание

Хотя запросы отображаются для использования с двойными кавычками, в действительности применяются только одиночные кавычки. В одну пару одинарных кавычек заключается 'Evaluate <имя_таблицы>', а имя таблицы — в другую пару одинарных, которые необходимо экранировать путем удвоения. Одинарные кавычки для имени таблицы необходимы только для имен таблиц, содержащих пробелы.

SELECT * From $SYSTEM.DISCOVER_CALC_DEPENDENCY WHERE QUERY = 'EVALUATE ''Reseller Sales'''

SELECT * from $system.DISCOVER_CALC_DEPENDENCY WHERE QUERY = 'EVALUATE CALCULATETABLE(VALUES(''Product Subcategory''[Product Subcategory Name]), ''Product Category''[Product Category Name] = "Bikes")'

Пример XMLА для ограничения QUERY

Вы можете использовать команду Discover из XMLA для возврата объектов запроса в таблице. XMLA возвращает результаты в виде необработанного XML. Для синтаксического анализа результатов в более удобном для чтения виде вы можете использовать ADOMD.NET.

<Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
   <RequestType>DISCOVER_CALC_DEPENDENCY</RequestType>
     <Restrictions>
        <RestrictionList>
            <QUERY>Evaluate 'Reseller Sales'</QUERY>
        </RestrictionList>
    </Restrictions>
    <Properties />
</Discover>

Использование ADOMD.NET для возврата набора строк

Если для получения метаданных используется ADOMD.NET и набор строк схемы, то для ссылки на объект набора строк схемы в методе GetSchemaDataSet вы можете использовать идентификатор GUID или строку. Дополнительные сведения см. в разделе Работа с наборами строк схемы в ADOMD.NET.

В следующей таблице указываются значения строки и идентификатора GUID, определяющие этот набор строк.

Аргумент

Значение

GUID

a07ccd46-8148-11d0-87bb-00c04fc33942

ADOMDNAME

DependencyGraph

См. также

Справочник

Наборы строк схемы служб Analysis Services

Основные понятия

Использование динамических административных представлений для мониторинга служб Analysis Services