SharePoint의 계산된 열 | 개요
SharePoint에서 계산된 열의 중요성과 목록에서 자동 계산 및 데이터 수집을 수행하는 방법을 알아보세요.
과 모두 DAX 쿼리에서 데이터를 조작하고 분석하기 위한 강력한 도구이지만 이해해야 할 몇 가지 주요 차이점이 있습니다.
이 블로그에서는 CALCULATETABLE 함수와 DAX 스튜디오의 쿼리 계획을 살펴보고 이것이 FILTER 함수 와 어떻게 다른지 이해합니다 . 마지막에는 데이터 분석 요구에 맞는 올바른 기능을 선택하는 방법을 더 잘 이해하게 될 것입니다.
시연을 위해 아래 DAX 코드를 사용합니다.
이 코드를 실행하면 브랜드와 색상을 보여주는 테이블이 표시됩니다.
쿼리 계획 탭 에서 수식 엔진 의 CrossApply 연산자 에 해당하는 코드를 얻을 수 있습니다 .
동시에 서버 타이밍 탭에서 코드가 제품 색상과 브랜드만 검색하는 것을 볼 수 있습니다.
목차
CALCULATETABLE에 대한 DAX Studio 서버 타이밍 결과
예를 들어 빨간색 및/또는 검은색만 표시하도록 제품 색상을 필터링해 보겠습니다.
FILTER 기능을 사용하여 그렇게 할 수 있습니다. 실행하면 서버 타이밍에 FILTER 인수가 xmSQL 코드 에 적용되지 않는다고 표시됩니다 .
그러나 CALCULATETABLE 기능을 사용하는 경우 Server Timings 탭의 쿼리는 결과가 제품 색상으로 필터링되었음을 표시합니다.
DAX Studio의 CALCULATETABLE 쿼리 계획
각 기능에 대한 쿼리 계획을 살펴보겠습니다.
CALCULATETABLE은 코드의 최상위 함수이므로 어떤 요구 사항에도 의존하지 않기 때문에 논리적 쿼리 계획 의 첫 번째 줄에 있습니다.
CALCULATETABLE 함수의 쿼리 계획을 읽을 때 첫 번째 인수로 시작하지 않습니다. 먼저 사용된 필터 컨텍스트를 이해해야 합니다. 그럼 5번째 줄로 갑시다.
적용된 필터로 인해 VertiPaq 작업자가 제품 색상 열을 필요로 함 을 알 수 있습니다 . 그런 다음 이 열을 스캔하고 Not IsEmpty 필터 조합을 사용하여 각 행에 대한 제품 색상을 확인합니다.
필터 컨텍스트가 준비된 후 인수가 수행됩니다.
돌이켜 보면 FILTER 함수를 사용하면 다른 쿼리 계획이 표시되므로 필터 컨텍스트를 식별하기 전에 CROSSJOIN 인수가 수행됩니다.
이 접근 방식의 단점은 필터 조건을 스토리지 엔진으로 푸시하지 않는다는 것입니다. 수식 엔진에 큰 부담을 주는 xmSQL 내에서 WHERE 절을 사용할 수 없습니다 .
그리고 여러 테이블로 작업할 때 CROSSJOIN 함수의 필터 조합이 엄청날 것입니다. 이로 인해 DAX 코드의 성능이 느려집니다. 따라서 대부분의 경우 CALCULATETABLE 함수를 사용하는 것이 좋습니다.
따라서 수식 엔진에서 모든 계산을 수행하는 대신 XMSQL 코드의 WHERE 클래스 내부에 필터 조건을 삽입할 수 있습니다.
유사한 DAX 함수에 대한 컨텍스트 전환
서버 타이밍
이 개념은 CALCULATE 함수에도 적용할 수 있습니다. 아래의 DAX 코드를 예로 들어 보겠습니다.
측정값에는 자동으로 주위에 CALCULATE 함수가 있습니다.
이 코드를 실행하면 각 색상의 총 판매액을 보여주는 표가 표시됩니다.
Server Timings 탭에서 코드가 두 개의 쿼리를 실행하고 있음을 확인할 수 있습니다. 첫 번째 쿼리는 Products 테이블과 관련하여 Sales 테이블의 Sales 금액 합계를 계산하는 것입니다.
반면 두 번째 쿼리는 Products 테이블에서 제품 색상을 다시 검색합니다. DAX 코드의 함수 에 해당합니다 .
수식 엔진은 두 쿼리의 데이터 캐시를 나란히 배치합니다. 두 번째 데이터 캐시에서 값을 검색하여 시작한 다음 첫 번째 데이터 캐시에서 조회를 수행합니다.
쿼리 계획
쿼리 계획 탭에서 논리 쿼리 계획은 인수 때문에 제품 색상을 스캔합니다.
그런 다음 VertiPaq은 제품 색상에 따라 총 판매 금액을 합산합니다. 제품 색상 값을 동등한 필터 컨텍스트로 변환하는 컨텍스트 전환을 수행합니다.
컨텍스트 전환에 의해 생성된 필터는 쿼리 계획의 DependOnCols 속성으로 변환됩니다. VertiPaq은 총 판매액을 계산하는 데 필요한 열을 스캔한 후 판매 수량에 순 가격을 곱합니다.
그런 다음 Total Sales가 통화 데이터 형식의 형식으로 결과로 반환됩니다. 마지막으로 ADDCOLUMNS는 Color 및 Total Sales 금액을 포함하는 두 개의 열이 있는 테이블을 반환합니다.
결론
쿼리 계획마다 효율성 수준이 다를 수 있으므로 쿼리 계획은 쿼리 성능에 상당한 영향을 미칠 수 있습니다.
DAX 쿼리에서 CALCULATETABLE 및 FILTER 함수를 사용하는 경우 쿼리 계획은 특정 시나리오 및 사용 중인 특정 수식 식 및 쿼리 엔진의 기능과 같은 다양한 요소에 따라 다를 수 있습니다.
일반적으로 주어진 시나리오에 가장 효율적인 접근 방식을 결정하기 위해 다양한 쿼리 계획의 성능을 테스트하고 비교하는 것이 좋습니다.
모두 제일 좋다,
SharePoint에서 계산된 열의 중요성과 목록에서 자동 계산 및 데이터 수집을 수행하는 방법을 알아보세요.
컬렉션 변수를 사용하여 Power Apps에서 변수 만드는 방법 및 유용한 팁에 대해 알아보세요.
Microsoft Flow HTTP 트리거가 수행할 수 있는 작업과 Microsoft Power Automate의 예를 사용하여 이를 사용하는 방법을 알아보고 이해하십시오!
Power Automate 흐름 및 용도에 대해 자세히 알아보세요. 다양한 작업 및 시나리오에 사용할 수 있는 다양한 유형의 흐름에 대해 설명합니다.
조건이 충족되지 않는 경우 흐름에서 작업을 종료하는 Power Automate 종료 작업 컨트롤을 올바르게 사용하는 방법을 알아봅니다.
PowerApps 실행 기능에 대해 자세히 알아보고 자신의 앱에서 바로 웹사이트, 전화, 이메일 및 기타 앱과 같은 기타 서비스를 실행하십시오.
타사 애플리케이션 통합과 관련하여 Power Automate의 HTTP 요청이 작동하는 방식을 배우고 이해합니다.
Power Automate Desktop에서 Send Mouse Click을 사용하는 방법을 알아보고 이것이 어떤 이점을 제공하고 흐름 성능을 개선하는지 알아보십시오.
PowerApps 변수의 작동 방식, 다양한 종류, 각 변수가 앱에 기여할 수 있는 사항을 알아보세요.
이 자습서에서는 Power Automate를 사용하여 웹 또는 데스크톱에서 작업을 자동화하는 방법을 알려줍니다. 데스크톱 흐름 예약에 대한 포괄적인 가이드를 제공합니다.