DAX 계산의 데이터 캐시

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 측정값을 올바르게 빌드하여 이 문제를 해결할 수 있습니다.


파이썬에서 자기란 무엇인가: 실제 사례

파이썬에서 자기란 무엇인가: 실제 사례

파이썬에서 자기란 무엇인가: 실제 사례

R에서 RDS 파일을 저장하고 로드하는 방법

R에서 RDS 파일을 저장하고 로드하는 방법

R의 .rds 파일에서 개체를 저장하고 로드하는 방법을 배웁니다. 이 블로그에서는 R에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.

첫 N 영업일 재방문 – DAX 코딩 언어 솔루션

첫 N 영업일 재방문 – DAX 코딩 언어 솔루션

이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.

LuckyTemplates에서 다중 스레드 동적 시각적 개체 기술을 사용한 인사이트 쇼케이스

LuckyTemplates에서 다중 스레드 동적 시각적 개체 기술을 사용한 인사이트 쇼케이스

이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.

LuckyTemplates의 컨텍스트 필터링 소개

LuckyTemplates의 컨텍스트 필터링 소개

이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.

LuckyTemplates 온라인 서비스에서 앱을 사용하기 위한 최고의 팁

LuckyTemplates 온라인 서비스에서 앱을 사용하기 위한 최고의 팁

LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.

시간 경과에 따른 이익 마진 변화 분석 - LuckyTemplates 및 DAX를 사용한 분석

시간 경과에 따른 이익 마진 변화 분석 - LuckyTemplates 및 DAX를 사용한 분석

LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.

DAX Studio의 데이터 캐시에 대한 구체화 아이디어

DAX Studio의 데이터 캐시에 대한 구체화 아이디어

이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.

LuckyTemplates를 사용한 비즈니스 보고

LuckyTemplates를 사용한 비즈니스 보고

지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것