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

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

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

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

이 자습서에서는 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에서 이미 생성한 데이터 캐시를 재사용하여 쿼리 실행 시간을 줄일 수 있습니다.


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

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

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

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 게이트웨이란? 당신이 알아야 할 모든 것