DISCOVER_CALC_DEPENDENCY 행 집합
계산 간 종속성과 해당 계산에서 참조하는 개체에 대한 보고서입니다. 클라이언트 응용 프로그램에 이 정보를 사용하여 복잡한 수식과 관련된 문제를 보고하거나 관련 개체가 삭제 또는 수정될 때 경고할 수 있습니다. 행 집합을 사용하여 측정값 또는 계산 열에 사용된 DAX 식을 추출할 수도 있습니다.
적용 대상 테이블 형식 모델
행 집합 열
DISCOVER_CALC_DEPENDENCY 행 집합에는 다음 열이 포함되어 있습니다. 테이블은 데이터 형식을 지정하고, 반환되는 행을 제한하도록 열을 제한할 수 있는지 여부를 나타내며, 각 열에 대한 설명을 제공합니다.
열 이름 |
유형 표시기 |
제한 |
설명 |
---|---|---|---|
DATABASE_NAME |
DBTYPE_WSTR |
예 |
종속성 분석이 요청된 개체를 포함하는 데이터베이스 이름을 지정합니다. 생략하는 경우 현재 데이터베이스가 사용됩니다. 이 열을 사용하여 DISCOVER_DEPENDENCY_CALC 행 집합을 제한할 수 있습니다. |
OBJECT_TYPE |
DBTYPE_WSTR |
예 |
종속성 분석이 요청된 개체의 유형을 나타냅니다. 개체의 유형은 다음 중 하나여야 합니다.
이 열을 사용하여 DISCOVER_DEPENDENCY_CALC 행 집합을 제한할 수 있습니다. |
QUERY |
DBTYPE_WSTR |
예 |
SQL Server 2012 SP1에서 만든 테이블 형식 모델의 경우 해당 쿼리 또는 식에 대한 종속성 그래프를 표시하도록 DAX 쿼리 또는 식을 포함할 수 있습니다. QUERY 제한은 DAX 쿼리에 사용되는 개체를 결정하는 방법을 클라이언트 응용 프로그램에 제공합니다. QUERY 제한은 DMV 쿼리의 XMLA 또는 WHERE 절에 지정할 수 있습니다. 자세한 내용은 "예" 섹션을 참조하십시오. |
TABLE |
DBTYPE_WSTR |
종속성 정보가 생성된 개체를 포함하는 테이블의 이름입니다. |
|
OBJECT |
DBTYPE_WSTR |
종속성 정보가 생성된 개체의 이름입니다. 개체가 측정값 또는 계산된 열인 경우 측정값의 이름을 사용합니다. 개체가 관계인 경우 관계에 참가하는 열이 포함된 테이블(또는 큐브 차원)의 이름을 사용합니다. |
|
EXPRESSION |
DBTYPE_WSTR |
종속성을 찾는 개체를 포함하는 수식입니다. |
|
REFERENCED_OBJECT_TYPE |
DBTYPE_WSTR |
참조된 개체에 종속된 개체의 유형을 반환합니다. 반환된 개체의 유형은 다음 중 하나일 수 있습니다.
|
|
REFERENCED_TABLE |
DBTYPE_ WSTR |
종속 개체를 포함하는 테이블의 이름입니다. |
|
REFERENCED_OBJECT |
DBTYPE_ WSTR |
참조된 개체에 종속된 개체의 이름입니다. 측정값 및 계산된 열인 경우 측정값 또는 열의 이름을 사용합니다. 관계인 경우 종속 개체가 포함된 테이블(또는 큐브 차원)의 정규화된 이름을 사용합니다. |
|
REFERENCED_EXPRESSION |
DBTYPE_WSTR |
계산된 열 또는 측정값에 있는 수식 중 참조된 개체에 종속된 수식입니다. |
예
기본 구문
다음 쿼리는 현재 연결에서 기본 데이터베이스를 사용하여 이 행 집합의 모든 열 값을 반환하는 단순한 DMV 쿼리입니다. MDX 쿼리 창에서 이 쿼리를 실행하고 Management Studio에서 결과를 볼 수 있습니다. Excel에서 PowerPivot DMV 쿼리에 설명된 방법에 따라 Excel에서 DMV 쿼리 결과를 볼 수도 있습니다.
SELECT * FROM $System.DISCOVER_CALC_DEPENDENCY
결과 정렬
ORDER BY를 추가하여 행 집합을 테이블 또는 다른 열을 기준으로 정렬할 수 있습니다.
SELECT * FROM $System.DISCOVER_CALC_DEPENDENCY ORDER BY [TABLE] ASC
WHERE 절을 사용하여 필터링
다음 쿼리에서는 WHERE 절을 사용하여 제한을 추가하는 방법을 보여 줍니다. 열 Database_Name, Object_Type 및 Query를 WHERE 절의 쿼리 필터로 사용할 수 있습니다.
SELECT * From $SYSTEM.DISCOVER_CALC_DEPENDENCY WHERE OBJECT_TYPE = 'RELATIONSHIP' OR OBJECT_TYPE = 'ACTIVE_RELATIONSHIP'
측정값 및 계산된 열에 대해 필터링하여 기본 DAX 식 보기
이 쿼리에서는 측정값 또는 계산된 열을 선택하는 작업만으로 계산에 사용된 DAX 식을 볼 수 있습니다. EXPRESSION 열에 DAX 식이 포함되어 있습니다. DISCOVER_CALC_DEPENDENCY를 사용하여 모델에 사용된 DAX 식을 추출하려는 경우에는 이 쿼리만으로 충분합니다. 이 쿼리에서는 모델에 사용된 모든 식을 오름차순으로 반환합니다.
SELECT * From $SYSTEM.DISCOVER_CALC_DEPENDENCY WHERE OBJECT_TYPE = 'MEASURE' OR OBJECT_TYPE = 'CALC_COLUMN' ORDER BY [EXPRESSION] ASC
QUERY를 사용하여 필터링
QUERY 제한을 통해 DAX 쿼리를 제공하여 해당 쿼리에 사용된 모든 개체를 볼 수 있습니다. 'Evaluate Customer'와 같은 간단한 쿼리를 살펴 보겠습니다. 여기에서 설명한 것과 같이 이 쿼리에서는 고객 데이터 행을 반환하며 여기서 행 컴퍼지션은 Customer 테이블의 열을 기반으로 합니다. 이제 'Evaluate Customer' QUERY 제한을 사용하여 DISCOVER_CALC_DEPENDENCY를 실행하면 해당 쿼리에 사용된 열 또는 개체를 결과로 얻습니다. 이 경우에는 Customer 테이블의 열 목록을 결과로 얻습니다.
다음 쿼리 집합에서는 QUERY 제한의 구문을 보여 줍니다. AdventureWorks Tabular Model SQL Server 2012에 대해 이 쿼리를 실행하여 결과 집합을 볼 수 있습니다.
첫 번째 쿼리에서는 공백을 포함하는 개체 이름에 대한 QUERY 제한을 지정하는 방법을 보여 줍니다. The second query, borrowed from OLE DB 및 ADOMD.NET을 통해 DAX 쿼리 실행에서 가져온 두 번째 쿼리는 여러 테이블의 개체를 포함하는 좀 더 복잡한 쿼리입니다.
[!참고]
쿼리에 큰따옴표가 사용되는 것처럼 보이지만 사실은 작은따옴표만 사용됩니다. 'Evaluate <Tablename>'은 한 쌍의 작은따옴표로 묶이며, 테이블 이름에 사용된 작은따옴표는 이중으로 사용하여 이스케이프해야 합니다. 테이블 이름을 묶는 작은따옴표는 공백이 있는 테이블 이름에만 필요합니다.
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")'
QUERY 제한 XMLA 예제
XMLA Discover 명령을 사용하여 테이블의 쿼리 개체를 반환할 수 있습니다. 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 및 스키마 행 집합을 사용하여 메타데이터를 검색할 때 GUID 또는 문자열을 사용하여 GetSchemaDataSet 메서드의 스키마 행 집합 개체를 참조할 수 있습니다. 자세한 내용은 ADOMD.NET에서 스키마 행 집합 작업을 참조하십시오.
다음 표에서는 이 행 집합을 식별하는 GUID와 문자열 값을 제공합니다.
인수 |
값 |
---|---|
GUID |
a07ccd46-8148-11d0-87bb-00c04fc33942 |
ADOMDNAME |
DependencyGraph |