데이터 캐시: 정의 및 쿼리 최적화에 도움이 되는 방법

이 자습서에서는 데이터 캐시가 무엇이고 왜 중요한지 알아봅니다. 데이터 캐시는 나중에 사용할 수 있는 데이터 비트를 저장합니다.

향후 조치 또는 조치에서 동일한 정보가 필요한 경우 데이터 캐시가 필요한 정보를 제공합니다. 시스템이 동일한 데이터 세트를 다시 가져오지 않아도 됩니다.

이 자습서에서는 LuckyTemplates에서 데이터 캐시를 처리할 때 기억해야 할 8가지 중요한 사항을 살펴봅니다.

데이터 캐시: 정의 및 쿼리 최적화에 도움이 되는 방법

목차

데이터 캐시의 정의 및 목적

데이터 캐시: 정의 및 쿼리 최적화에 도움이 되는 방법

데이터 캐시는 스토리지 엔진 에 의해 메모리에 생성된 임시 테이블입니다 . 이 임시 테이블은 이 정보를 반복하고 쿼리에 따라 다른 작업을 수행하는 수식 엔진으로 전송됩니다.

데이터 캐시: 정의 및 쿼리 최적화에 도움이 되는 방법

수식 엔진 과 스토리지 엔진 간의 모든 통신은 항상 데이터 캐시의 형태로 발생합니다. 수식 엔진은 쿼리 계획을 준비한 다음 저장소 엔진에 명령을 보냅니다. 그런 다음 스토리지 엔진은 결과를 사용자에게 다시 반환하는 수식 엔진으로 다시 보냅니다.

데이터 캐시: 정의 및 쿼리 최적화에 도움이 되는 방법

수식 엔진은 DirectQuery 및 VertiPaq에 저장된 데이터에 직접 액세스할 수 없으므로 데이터 캐시를 위해 스토리지 엔진에 의존합니다.

데이터 캐시: 정의 및 쿼리 최적화에 도움이 되는 방법

스토리지 엔진에서 보낸 데이터 캐시는 압축되지 않은 형식입니다. 이는 Vertipaq 도구에 저장된 데이터의 크기를 줄일 수 있음을 의미합니다.

그러나 데이터 캐시를 수식 엔진으로 다시 반환해야 할 때 수식 엔진이 압축된 데이터 세트와 함께 작동하지 않기 때문에 압축할 수 없습니다.

데이터 캐시가 RAM에 미치는 영향

데이터 캐시: 정의 및 쿼리 최적화에 도움이 되는 방법

스토리지 엔진이 엄청난 양의 데이터 캐시를 보내는 경우 소프트웨어 RAM에서 많은 공간을 차지합니다. 또한 수식 엔진이 반복을 수행하고 결과를 생성하는 데 상당한 시간이 소요됩니다.

따라서 DAX 코드를 작성할 때 데이터 캐시의 행을 최소화하는 방식으로 작성되어야 한다는 점을 이해해야 합니다.

최상의 시나리오는 시각적 개체에 표시된 행 수를 데이터 캐시에 반환된 행 수와 일치시키는 것입니다.

대부분의 경우 동일한 양의 행을 반환하기가 어렵습니다. 이 경우 DAX 코드를 검토하고 스토리지 엔진에서 생성된 데이터 캐시를 최적화하는 방식으로 분석해야 합니다.

데이터 캐시가 쿼리를 최적화하는 방법

최적화되지 않은 기능

데이터 캐시: 정의 및 쿼리 최적화에 도움이 되는 방법

DAX 언어의 일부 기능은 스토리지 엔진에 최적화되어 있지 않습니다. 이를 더 잘 이해하기 위해 예를 살펴보겠습니다.

예를 들어 코드에서 SUMMARIZE를 사용하는 대신 함수를 사용할 수 있습니다. SUMMARIZE 및 GROUPBY 함수는 동일한 작업을 수행합니다. 그러나 시나리오에 따라 눈에 띄는 차이점이 있습니다.

GROUPBY 함수는 스토리지 엔진에 최적화되어 있지 않습니다. 1,200만 개의 행이 있는 팩트 테이블에서 GROUPBY 함수를 사용하면 동일한 행 수의 데이터 캐시가 생성됩니다. 최대 600mb에서 최대 1gb까지 가능합니다.

이 크기는 RAM에 많은 부담을 줄 수 있습니다. 따라서 GROUPBY를 사용하는 대신 사용하십시오 . SUMMARIZE 함수를 사용하면 데이터 캐시 크기가 작아집니다. 최상위 기능으로 GROUPBY와 페어링할 수 있습니다.

감소된 반복

DAX 측정값 또는 쿼리를 작성할 때 백그라운드에서 생성된 코드가 스토리지 엔진에 적합한지 확인해야 합니다.

데이터 캐시: 정의 및 쿼리 최적화에 도움이 되는 방법

후속 쿼리에서도 사용할 수 있는 데이터 캐시를 생성하는 방식으로 DAX 코드를 작성해야 합니다. 이렇게 하면 VertiPaq을 사용하여 별도의 스캔을 수행하는 대신 스토리지 엔진이 유사한 쿼리가 이미 수신되었는지 여부를 확인한다는 이점이 있습니다.

이것이 사실이라면 데이터 캐시를 메모리에서 사용할 수 있음을 의미합니다. 따라서 쿼리를 다시 스캔하는 대신 VertiPaq은 쿼리를 캐시 메모리에서 수식 엔진으로 반환합니다.

데이터 캐시: 정의 및 쿼리 최적화에 도움이 되는 방법

스토리지 엔진 쿼리에 CALLBACKDATAID 연산자가 표시되면 해당 쿼리를 캐시할 수 없음을 의미합니다. 유사 쿼리가 스토리지 엔진으로 전송되는 경우 반복을 수행합니다.

따라서 VertiPaq은 수식 엔진을 호출하여 쿼리를 해결해야 합니다. 이 경우 캐시 메모리를 사용할 수 없기 때문에 전체 실행 시간이 늘어납니다.

결론

데이터 캐시는 DAX 언어에서 가장 친한 친구입니다. 스토리지 공간을 최대화하고 VertiPaq 도구의 반복 횟수를 줄이는 방식으로 DAX 코드를 작성해야 합니다. Storage Engine에서 이미 생성한 데이터 캐시를 재사용하여 쿼리 실행 시간을 줄일 수 있습니다.

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