측정값, 관계 및 시각적 개체의 성능 검토

완료됨

의미 체계 모델에 여러 테이블, 복잡한 관계, 복잡한 계산, 여러 시각적 개체, 또는 중복 데이터가 있는 경우 보고서 성능이 저하될 가능성이 있습니다. 보고서의 성능이 떨어지면 부정적인 사용자 환경으로 이어집니다.

보고서 성능에 영향을 주는 요소의 스크린샷

성능을 최적화하려면 먼저 문제가 발생한 위치를 식별해야 합니다. 즉, 성능 문제를 야기하는 보고서 및 의미 체계 모델의 요소를 찾습니다. 이후에는 이러한 문제를 해결하기 위한 조치를 취할 수 있으므로 성능을 향상할 수 있습니다.

보고서 성능 병목 상태 식별

보고서에서 최적의 성능을 얻으려면 신속하게 실행되는 쿼리 및 측정값이 있는 효율적인 의미 체계 모델을 만들어야 합니다. 기본이 좋으면 쿼리 계획 및 종속성을 분석한 다음 변경하여 성능을 추가로 최적화함으로써 모델을 향상할 수 있습니다.

의미 체계 모델의 측정값과 쿼리를 검토하여 원하는 결과를 얻을 수 있는 가장 효율적인 방법을 사용 중인지 확인해야 합니다. 시작 지점은 코드에 존재하는 병목 상태를 식별하는 것입니다. 의미 체계 모델에서 가장 느린 쿼리를 식별하면 가장 큰 병목 상태에 우선 집중하고 다른 문제를 해결하기 위한 우선 순위 목록을 설정할 수 있습니다.

성능 분석

Power BI Desktop에서 성능 분석기를 사용하여, 사용자가 상호 작용할 때 각 보고서 요소가 수행하는 방식을 확인할 수 있습니다. 예를 들어 특정 시각적 개체가 사용자 상호 작용에 의해 시작될 때 이 개체를 새로 고치는 데 걸리는 시간을 확인할 수 있습니다. 성능 분석기는 성능 문제에 영향을 주는 요소를 식별하는 데 도움이 되며 문제 해결 과정에서 유용할 수 있습니다.

분석(테스트)에서 가장 정확한 결과를 얻으려면 성능 분석기를 실행하기 전에 시각적 개체 지우기 및 데이터 엔진 캐시 지우기부터 시작해야 합니다.

  • 시각적 개체 캐시 - 시각적 개체를 로드하면 Power BI Desktop을 닫았다가 다시 열지 않고는 이 시각적 캐시를 지울 수 없습니다. 재생 시 캐싱을 방지하려면 시각적 개체 캐시를 비운 상태에서 분석을 시작해야 합니다.

    시각적 개체 캐시가 비어 있도록 하려면 Power BI Desktop(.pbix) 파일에 빈 페이지를 추가하고 이 빈 페이지를 선택한 상태에서 파일을 저장한 후 닫습니다. 분석하려는 Power BI Desktop(.pbix) 파일을 다시 엽니다. 그러면 빈 페이지에서 열립니다.

  • 데이터 엔진 캐시 - 쿼리가 실행될 때 결과가 캐시되므로, 잘못된 분석 결과가 나옵니다. 시각적 개체를 다시 실행하기 전에 데이터 캐시를 지워야 합니다.

    데이터 캐시를 지우려면 Power BI Desktop을 다시 시작하거나 DAX Studio를 의미 체계 모델에 연결한 다음 Clear Cache를 호출하면 됩니다.

캐시를 지우고 Power BI Desktop 파일을 빈 페이지에서 열면 보기 탭으로 이동하여 성능 분석기 옵션을 선택합니다.

분석 프로세스를 시작하려면 기록 시작을 선택하고 분석할 보고서의 페이지를 선택한 다음 측정하려는 보고서 요소와 상호 작용합니다. 작업할 때 성능 분석기 창에 상호 작용 표시 결과가 나타납니다. 작업이 완료되면 중지 단추를 선택합니다.

성능 분석기 시작 화면의 스크린샷

자세한 내용은 성능 분석기를 사용하여 보고서 요소 성능 검사를 참조하세요.

결과 검토

성능 분석기 창에서 성능 테스트의 결과를 검토할 수 있습니다. 작업을 시간 순서대로(가장 긴 시간부터 가장 짧은 순으로) 검토하려면 기간(밀리초) 열 머리글 옆에 있는 정렬 아이콘을 마우스 오른쪽 단추로 클릭한 다음 내림차순에서 총 시간을 선택합니다.

분석기에서 결과를 정렬하는 방법을 보여 주는 스크린샷

각 시각적 개체에 대한 로그 정보는 다음 작업 범주를 완료하는 데 걸린 시간(기간)을 보여 줍니다.

  • DAX 쿼리 - 시각적 개체에서 쿼리를 전송하는 데 걸린 시간과 Analysis Services에서 결과를 반환하는 데 걸린 시간

  • 시각적 개체 표시 - 웹 이미지 또는 지오코딩을 검색하는 데 필요한 시간을 포함하여 화면에 시각적 개체를 렌더링하는 데 걸린 시간

  • 기타 - 시각적 개체가 쿼리를 준비하거나, 다른 시각적 개체가 완료될 때까지 기다리거나, 다른 백그라운드 처리 작업을 수행하는 데 걸린 시간. 이 범주에 오랜 기간이 표시되는 경우 이 기간을 단축하는 유일한 실질적인 방법은 다른 시각적 개체에 대한 DAX 쿼리를 최적화하거나 보고서의 시각적 개체 수를 줄이는 것입니다.

성능 분석기 결과의 범주 스크린샷

분석 테스트의 결과는 의미 체계 모델의 동작을 이해하고 최적화해야 하는 요소를 식별하는 데 도움이 됩니다. 보고서에서 각 요소의 기간을 비교하고 기간이 긴 요소를 식별할 수 있습니다. 이러한 요소에 초점을 맞춰 요소가 보고서 페이지에 로드되는 데 시간이 오래 걸리는 이유를 조사해야 합니다.

쿼리를 좀 더 자세히 분석하려면 다른 서비스에서 제공하는 무료 오픈 소스 도구인 DAX Studio를 사용하면 됩니다.

문제 해결 및 성능 최적화

분석 결과는 개선할 영역과 성능 최적화를 위한 기회를 식별합니다. 의미 체계 모델의 시각적 개체, DAX 쿼리 또는 기타 요소를 개선해야 할 수도 있습니다. 다음 정보는 찾을 내용 및 변경할 수 있는 항목에 대한 지침을 제공합니다.

시각적 개체

성능 저하로 이어지는 병목 상태로 시각적 개체를 식별하는 경우 사용자 환경에 미치는 영향을 최소화하면서 성능을 향상할 수 있는 방법을 찾아야 합니다.

보고서 페이지의 시각적 개체 수를 고려합니다. 시각적 개체가 적을수록 성능이 더 좋습니다. 시각적 개체가 실제로 필요하며 최종 사용자에게 부가가치가 있는지 스스로 물어보고 그렇지 않다고 판단되는 시각적 개체를 제거해야 합니다. 페이지에서 여러 시각적 개체를 사용하는 대신 드릴스루 페이지 및 보고서 페이지 도구 설명과 같은 추가 정보를 제공하는 다른 방법을 고려합니다.

각 시각적 개체의 필드 수를 검사합니다. 보고서에 있는 시각적 개체의 수가 많을수록 성능 문제가 생길 가능성이 높습니다. 또한 시각적 개체를 많을수록 보고서가 복잡해 보이고 명확성을 읽을 수 있습니다. 시각적 개체에 대한 상한은 필드(측정값 또는 열) 100개이므로, 필드가 100개가 넘는 시각적 개체는 로드 속도가 떨어집니다. 시각적 개체에 이 데이터가 모두 필요한지를 스스로에게 물어보면 현재 사용하고 있는 필드의 수를 줄여도 된다고 판단할 수도 있습니다.

DAX 쿼리

성능 분석기 창에서 결과를 검토하면 Power BI Desktop 엔진이 각 쿼리를 평가하는 데 걸린 시간(밀리초)을 확인할 수 있습니다. 120밀리초 넘게 시간이 걸리는 DAX 쿼리는 좋은 출발점입니다. 이 예에서는 기간이 긴 특정 쿼리를 식별합니다.

성능 분석기 기간이 긴 예제의 스크린샷

성능 분석기는 잠재적인 문제를 강조하지만 문제를 개선하는 데 필요한 조치는 알려주지 않습니다. 이 측정값이 처리되는 데 시간이 오래 걸리는 이유를 추가로 조사하는 것이 좋습니다. DAX Studio를 사용하여 쿼리를 더 자세히 조사할 수 있습니다.

예를 들어 쿼리 복사를 선택하여 계산 수식을 클립보드에 복사한 후 Dax Studio에 붙여넣습니다. 그다음에 계산 단계를 자세히 검토할 수 있습니다. 이 예에서는 주문 수량이 5보다 크거나 같은 제품 총수를 계산하려고 합니다.

Count Customers =
CALCULATE (
    DISTINCTCOUNT ( Order[ProductID] ),
    FILTER ( Order, Order[OrderQty] >= 5 )
)

쿼리를 분석한 후에는 자신만의 지식과 경험을 활용하여 성능 문제가 발생한 위치를 식별할 수 있습니다. 또한, 다른 DAX 함수를 사용하여 성능이 향상되는지 확인할 수도 있습니다. 다음 예에서는 FILTER 함수가 KEEPFILTER 함수로 대체되었습니다. 테스트를 성능 분석기에서 다시 실행했을 때 KEEPFILTER 함수의 결과로 기간이 짧아졌습니다.

Count Customers =
CALCULATE (
    DISTINCTCOUNT ( Order[ProductID] ),
    KEEPFILTERS (Order[OrderQty] >= 5 )
)

이 경우 FILTER 함수를 KEEPFILTER 함수로 대체하여 이 쿼리의 평가 기간을 크게 줄일 수 있습니다. 이렇게 변경하는 경우 기간이 개선되었는지 여부를 확인하려면 데이터 캐시를 지운 다음 성능 분석기 프로세스를 다시 실행합니다.

성능 분석기 기간이 짧은 예제의 스크린샷

의미 체계 모델

측정값과 시각적 개체의 기간에 낮은 값이 표시되는 경우(즉, 기간이 짧은 경우) 측정값과 시각적 개체는 성능 문제의 이유가 아닙니다. 대신 DAX 쿼리에서 높은 기간 값이 표시되는 경우에는 측정값이 잘못 기록되었거나 의미 체계 모델에 문제가 발생했을 수 있습니다. 이 문제가 발생하는 원인은 다음 섹션에서 설명하는 것처럼 모델의 관계, 열 또는 메타데이터이거나 자동 날짜/시간 옵션의 상태일 수도 있습니다.

관계

테이블 간의 관계를 검토하여 올바른 관계를 설정했는지 확인해야 합니다. 관계 카디널리티 속성이 올바르게 구성되어 있는지 확인합니다. 예를 들어 고유 값을 포함하는 ‘일’ 쪽 열이 ‘다’ 쪽 열로 잘못 구성되었을 수도 있습니다. 카디널리티가 성능에 미치는 영향에 대해서는 이 모듈 뒷부분에서 자세히 알아봅니다.

필요하지 않은 데이터 열은 가져오지 않는 것이 모범 사례입니다. Power Query 편집기에서 열을 삭제하지 않으려면 Power BI Desktop에 데이터를 로드할 때 원본에서 해당 열을 처리해야 합니다. 그러나 원본 쿼리에서 중복 열을 제거하는 것이 가능하거나 데이터를 이미 원시 상태로 가져온 경우에는 항상 Power Query 편집기를 사용하여 각 열을 검사할 수 있습니다. 각 열이 정말로 필요한지 스스로에게 물어보고 각 열이 의미 체계 모델에 추가하는 이점을 식별해 보세요. 열에 값이 추가되지 않으면 의미 체계 모델에서 해당 열을 제거해야 합니다. 예를 들어 수천 개의 고유 행이 있는 ID 열이 있다고 가정합니다. 이 특정 열을 관계에서 사용하지 않을 것이며 따라서 보고서에서 사용하지 않을 것으로 판단되면 따라서 이 열을 불필요한 것으로 간주하고 의미 체계 모델에서 공간을 낭비하고 있음을 인정해야 합니다.

불필요한 열을 제거하면 의미 체계 모델의 크기가 줄어들고 이에 따라 파일 크기가 줄어들고 새로 고침 시간이 단축됩니다. 또한 의미 체계 모델에는 관련 데이터만 포함되므로 전반적인 보고서 성능이 개선됩니다.

자세한 내용은 가져오기 모델링을 위한 데이터 축소 방법을 참조하세요.

메타데이터

메타데이터는 다른 데이터에 대한 정보입니다. Power BI 메타데이터에는 의미 체계 모델에 대한 정보가 포함됩니다. 이러한 정보에는 각 열의 이름, 데이터 유형, 형식을 비롯하여 데이터베이스의 스키마, 보고서 디자인, 파일을 마지막으로 수정한 시간, 데이터 새로 고침 빈도 등이 있습니다.

데이터를 Power BI Desktop에 로드할 때는 보고서 작성을 시작하기 전에 의미 체계 모델과의 불일치를 식별하고 데이터를 정규화할 수 있도록 해당 메타데이터를 분석하는 것이 좋습니다. 메타데이터에 대한 분석을 실행하면 의미 체계 모델 성능이 향상됩니다. 메타데이터를 분석하는 동안 불필요한 열, 데이터 내의 오류, 잘못된 데이터 형식, 로드되는 데이터의 양(트랜잭션 데이터 또는 기록 데이터를 포함한 대규모 의미 체계 모델은 로드하는 데 시간이 오래 걸림) 등을 식별하기 때문입니다.

Power BI Desktop에서 Power Query 편집기를 사용하여 원시 데이터의 열, 행 및 값을 검사할 수 있습니다. 그런 다음, 아래 스크린샷에 강조 표시된 도구처럼 사용 가능한 도구를 사용하여 필요한 사항을 변경할 수 있습니다.

쿼리 편집기 홈 탭 옵션의 스크린샷

파워 쿼리 옵션은 다음과 같습니다.

  • 불필요한 열 - 각 열의 필요성을 평가합니다. 하나 이상의 열이 보고서에 사용되지 않으므로 필요하지 않다면 탭에서 열 제거 옵션을 사용하여 해당 열을 제거해야 합니다.

  • 불필요한 행 - 의미 체계 모델의 처음 몇 개 행을 점검하여 해당 행이 비어 있는지 또는 보고서에 필요하지 않은 데이터가 포함되어 있는지 확인합니다. 비어 있거나 필요 없는 경우에는 탭의 행 제거 옵션을 사용하여 해당 행을 제거합니다.

  • 데이터 형식 - 열 데이터 형식을 평가하여 각 열이 올바른지 확인합니다. 잘못된 데이터 형식을 식별하는 경우 데이터 형식을 변경합니다. 열을 선택하고 변환 탭에서 데이터 형식을 선택한 후 목록에서 올바른 데이터 형식을 선택하면 됩니다.

  • 쿼리 이름 - 쿼리 창에서 쿼리(테이블) 이름을 검사합니다. 열 머리글 이름의 경우처럼, 일반적이지 않거나 도움이 되지 않는 쿼리 이름은 더 명확하거나 사용자에게 친숙한 이름으로 변경해야 합니다. 쿼리를 마우스 오른쪽 단추로 클릭하고 이름 바꾸기를 선택한 후 필요에 따라 이름을 편집하고 Enter 키를 눌러 쿼리 이름을 바꿀 수 있습니다.

  • 열 세부 정보 - Power Query 편집기에는 열과 연결된 메타데이터를 분석하는 데 사용할 수 있는 다음과 같은 세 가지 데이터 미리 보기 옵션이 있습니다. 이러한 옵션은 다음 스크린샷에 나온 것처럼 보기 탭에서 찾을 수 있습니다.

    • 열 품질 - 열에서 유효하거나, 오류가 있거나, 비어 있는 항목의 비율을 확인합니다. 유효한 백분율이 100이 아닌 경우에는 이유를 조사하고 오류를 수정하고 빈 값을 채워야 합니다.

    • 열 분포 - 각 열에 있는 값의 빈도 및 분포를 표시합니다. 이 모듈의 뒷부분에서 자세히 조사해 봅니다.

    • 열 프로필 - 열 통계 차트 및 열 분포 차트를 보여 줍니다.

열 프로필 옵션의 스크린샷

참고

1,000개 이상의 행이 있는 대규모 의미 체계 모델을 검토하고 전체 의미 체계 모델을 분석하려는 경우 창 하단의 기본 옵션을 변경해야 합니다. 상위 1,000개 행을 기반으로 하는 열 프로파일링>전체 데이터 세트를 기반으로 하는 열 프로파일링을 선택합니다.

열 프로필 행의 스크린샷

고려해야 할 다른 메타데이터는 의미 체계 모델 전체에 대한 정보(예: 파일 크기 및 데이터 새로 고침 빈도)입니다. 이 메타데이터는 연결된 Power BI Desktop(.pbix) 파일에서 찾을 수 있습니다. Power BI Desktop에 로드하는 데이터는 압축되어 VertiPaq 스토리지 엔진에 의해 디스크에 저장됩니다. 의미 체계 모델의 크기는 성능에 직접적인 영향을 미칩니다. 더 작은 크기의 의미 체계 모델은 더 적은 리소스(메모리)를 사용하고 보고서의 데이터 새로 고침, 계산 및 시각적 개체 렌더링을 더 빠르게 수행합니다.

자동 날짜/시간 기능

성능을 최적화할 때 고려할 또 다른 항목은 Power BI Desktop의 자동 날짜/시간 옵션입니다. 기본적으로 이 기능은 전역적으로 사용됩니다. 즉, 특정 조건이 충족되는 경우 Power BI Desktop에서 각 날짜 열에 대해 숨겨진 계산 테이블이 자동 생성됩니다. 새로운 숨겨진 테이블은 의미 체계 모델에 이미 있는 테이블에 추가됩니다.

자동 날짜/시간 옵션을 사용하면 달력 기간을 필터링, 그룹화 및 드릴다운할 때 시간 인텔리전스로 작업할 수 있습니다. 달력 기간으로 작업할 때 및 시간과 관련한 간단한 모델 요구 사항이 있을 때만 자동 날짜/시간 옵션을 사용하도록 유지하는 것이 좋습니다.

데이터 원본에서 이미 날짜 차원 테이블이 정의된 경우 해당 테이블을 사용하여 조직 내에서 시간을 일관성 있게 정의해야 하며 전역 자동 날짜/시간 옵션을 비활성화해야 합니다. 이 옵션을 사용하지 않도록 설정하면 의미 체계 모델의 크기가 줄어들고 새로 고침 시간이 단축될 수 있습니다.

자동 날짜/시간 옵션을 모든 Power BI Desktop 파일에 적용하도록 전역적으로 활성화/비활성화하거나 개별 파일에만 적용되도록 현재 파일에 대해 이 옵션을 활성화/비활성화할 수 있습니다.

자동 날짜/시간 옵션을 사용하거나 사용하지 않도록 설정하려면 파일>옵션 및 설정>옵션으로 이동한 다음, 전역 또는 현재 파일 페이지를 선택합니다. 둘 중 한 페이지에서 데이터 로드를 선택한 다음 시간 인텔리전스 섹션에서 필요에 따라 확인란을 선택하거나 선택 취소합니다.

자동 날짜 시간을 구성하는 방법을 보여 주는 스크린샷

자동 날짜/시간 기능에 대한 개요와 일반적인 소개는 Power BI Desktop의 자동 날짜/시간 적용을 참조하세요.