DAX 계산의 데이터 캐시

이 자습서에서는 DAX 계산에서 데이터 캐시가 수행하는 작업에 대해 알아봅니다. 쿼리에 대한 답변을 제공하기 위해 수식 및 스토리지 엔진과 함께 작동하는 방식을 이해할 수 있습니다.

목차

데이터 캐시란 무엇입니까?

스토리지 엔진은 데이터 캐시 형태로 수식 엔진과 상호 작용합니다 .

DAX 쿼리 구조에 대한 이전 블로그 게시물을 기억한다면 수식 엔진이 스토리지 엔진에서 데이터를 요청한다는 것을 알 수 있습니다. 그런 다음 후자는 데이터베이스로 이동하여 다양한 유형의 데이터를 가져온 다음 데이터 캐시 형태로 수식 엔진에 다시 반환합니다.

스토리지 엔진은 간단한 수학 및 집계를 수행할 수 있으므로 속도가 빨라집니다. 또한 한 번에 여러 데이터 캐시를 채울 수 있는 병렬성을 제공합니다. 하나의 스토리지 엔진 쿼리는 답변을 생성하는 데 시간이 걸릴 수 있습니다. 그러나 서로 다른 스토리지 엔진 쿼리를 모두 합산하면 둘 이상의 데이터 캐시를 채우고 있기 때문에 결과가 동일하지 않습니다.

반면 수식 엔진은 복잡한 쿼리에서 작동합니다. 단일 스레드 엔진이므로 하나의 최종 통합 데이터 캐시만 사용할 수 있습니다. 모든 요청이 스토리지 엔진에 의해 채워지면 데이터 캐시에서 작업을 시작합니다.

수식 엔진 요청이 이전 요청과 정확히 동일한 경우 이전에 반환된 캐시가 다시 사용됩니다. 스토리지 엔진은 동일한 요청을 받으면 동일한 데이터 캐시를 반환할 만큼 똑똑합니다. 이렇게 하면 데이터가 이미 캐시되어 있으므로 DAX의 성능이 더 빨라집니다.

측정을 실행할 때 콜드 캐시에 대해 실행하는 것이 중요합니다. 항상 웜 캐시에서 쿼리를 실행하지 마십시오. 웜 캐시는 스토리지 엔진 데이터 캐시가 이미 형성되어 반환될 준비가 되었음을 의미합니다.

주요 기능은 무엇입니까?

데이터 캐시는 시간이 걸리고 RAM을 잡아먹는 메모리에 구체화된 테이블입니다. 구체화는 가능한 한 낮아야 함을 항상 염두에 두십시오.

또 다른 주요 기능은 이러한 캐시가 압축되지 않는다는 것입니다 . 스토리지 엔진에서 나와 공식 엔진으로 전송되면 데이터 캐시는 메모리에서 압축되지 않은 전체 테이블이 됩니다. 이 실행은 모두 메모리에 있고 압축된 피어 스토리지 엔진 요청보다 훨씬 느립니다.

수식 엔진을 사용하는 데 문제가 없습니다. 스토리지 엔진이 가능한 한 많은 작업을 수행하도록 하기만 하면 됩니다.

데이터 캐시도 일시적입니다. 그들은 잠시 존재하다가 사라집니다. 메모리에 구체화되더라도 지속되지 않으므로 지워집니다.

데이터 캐시를 어디에서 찾을 수 있습니까?

이 정보는 Physical Query Plans' Records ColumnDAX Studio의 Server Timings in the Rows Column 에서 찾을 수 있습니다 . 스토리지 엔진에서 생성되고 수식 엔진으로 전송되는 행 수를 보여줍니다.

서버 타이밍에서 특정 테스트를 실행하면 행 수가 약간 다를 수 있음을 알 수 있습니다. 이것은 얼마나 많은 행을 끌어올리고 있는지에 대한 지침일 뿐입니다.

데이터 캐시에 대해 염두에 두어야 할 주요 사항은 구체화된 행의 수가 출력에 필요한 행의 수와 최대한 같아야 한다는 것입니다. 행 수에 큰 차이가 있으면 주문 작업이 꺼져 있음을 의미합니다.

구체화된 행의 양이 출력에 필요한 행의 양과 같은 경우 이를 Late Materialization 이라고 합니다 . 그러나 구체화된 행의 수가 필요한 행의 수보다 많은 경우 조기 구체화 라고 합니다 . 이는 압축되지 않은 데이터이므로 DAX의 성능이 느려지므로 두 엔진이 이를 구체화하도록 해서는 안 됩니다.

이것은 초기 구체화의 예입니다.

DAX 계산의 데이터 캐시

물리적 쿼리 계획에서 레코드 열에 2,500만 개의 행이 표시되는 것을 볼 수 있습니다. 그러나 샘플 쿼리에는 2,500만 행의 출력이 필요하지 않습니다. 이는 쿼리가 필요한 것보다 너무 많은 행을 가져왔음을 의미합니다.

Server Timings를 보면 Rows Column에서 같은 양의 행을 가져오는 것을 볼 수 있습니다.

DAX 계산의 데이터 캐시

SE CPU 시각적 개체 에서 쿼리에 병렬 처리가 있는 경우 숫자가 표시됩니다. 이 예제에는 아무것도 없기 때문에 0으로 표시됩니다.

DAX 계산의 데이터 캐시


LuckyTemplates Desktop의 DAX Studio란?
DAX 자습서: 컨텍스트 및 계산 엔진
DAX Studio의 VertiPaq Analyzer | 파워 BI 튜토리얼

결론

성능이 느린 DAX는 쿼리가 엔진 작동을 위해 불필요한 캐시를 가져오고 있음을 의미할 수 있습니다. 데이터 캐시는 엔진이 다른 요청에 대한 응답을 생성하기 위해 작동하기 때문에 DAX의 속도와 정확성을 담당합니다. 더 빠른 DAX 성능을 위해 데이터 모델 및 DAX 측정값을 올바르게 빌드하여 이 문제를 해결할 수 있습니다.

Leave a Comment

SharePoint의 계산된 열 | 개요

SharePoint의 계산된 열 | 개요

SharePoint에서 계산된 열의 중요성과 목록에서 자동 계산 및 데이터 수집을 수행하는 방법을 알아보세요.

Power Apps에서 변수 만들기: 컬렉션 작업

Power Apps에서 변수 만들기: 컬렉션 작업

컬렉션 변수를 사용하여 Power Apps에서 변수 만드는 방법 및 유용한 팁에 대해 알아보세요.

Microsoft Flow HTTP 트리거 | Power Automate 자습서

Microsoft Flow HTTP 트리거 | Power Automate 자습서

Microsoft Flow HTTP 트리거가 수행할 수 있는 작업과 Microsoft Power Automate의 예를 사용하여 이를 사용하는 방법을 알아보고 이해하십시오!

Power Automate 흐름: 사용법 및 유형 설명

Power Automate 흐름: 사용법 및 유형 설명

Power Automate 흐름 및 용도에 대해 자세히 알아보세요. 다양한 작업 및 시나리오에 사용할 수 있는 다양한 유형의 흐름에 대해 설명합니다.

흐름에서 Power Automate 종료 작업 제어

흐름에서 Power Automate 종료 작업 제어

조건이 충족되지 않는 경우 흐름에서 작업을 종료하는 Power Automate 종료 작업 컨트롤을 올바르게 사용하는 방법을 알아봅니다.

PowerApps 시작 기능: 앱에서 다른 서비스를 시작하는 방법

PowerApps 시작 기능: 앱에서 다른 서비스를 시작하는 방법

PowerApps 실행 기능에 대해 자세히 알아보고 자신의 앱에서 바로 웹사이트, 전화, 이메일 및 기타 앱과 같은 기타 서비스를 실행하십시오.

Power Automate의 HTTP 요청 – 소개

Power Automate의 HTTP 요청 – 소개

타사 애플리케이션 통합과 관련하여 Power Automate의 HTTP 요청이 작동하는 방식을 배우고 이해합니다.

Power Automate Desktop: 마우스 클릭 보내기 기능을 사용하는 방법

Power Automate Desktop: 마우스 클릭 보내기 기능을 사용하는 방법

Power Automate Desktop에서 Send Mouse Click을 사용하는 방법을 알아보고 이것이 어떤 이점을 제공하고 흐름 성능을 개선하는지 알아보십시오.

PowerApps 변수: 컨텍스트 및 전역 변수 식별

PowerApps 변수: 컨텍스트 및 전역 변수 식별

PowerApps 변수의 작동 방식, 다양한 종류, 각 변수가 앱에 기여할 수 있는 사항을 알아보세요.

Power Automate에서 실행할 데스크톱 흐름 예약

Power Automate에서 실행할 데스크톱 흐름 예약

이 자습서에서는 Power Automate를 사용하여 웹 또는 데스크톱에서 작업을 자동화하는 방법을 알려줍니다. 데스크톱 흐름 예약에 대한 포괄적인 가이드를 제공합니다.