인사이트 이해하기(프리뷰)

[이 항목은 시험판 설명서이므로 변경될 수 있습니다.]

성능 인사이트는 인사이트를 다음 범주로 배포합니다.

전체 성능

이 인사이트는 인사이트 ID Perf.Summary.Overview 아래의 요약으로 앱의 전체 성능을 요약합니다.

이 인사이트에서 심각도에 따라 앱의 전체 성능을 볼 수 있습니다.

  • 위험: 성능이 저하되었음을 나타냅니다.
  • 경고: 성능이 향상될 수 있음을 나타냅니다.
  • 정보: 좋은 성능을 나타냅니다.

개선 방법

앱을 최적화해야 할 때 클라이언트, 네트워크, 사용자 지정 범주는 물론 플러그인, storedQeury 및 설정에서 자세한 인사이트를 볼 수 있습니다. 이러한 인사이트를 검토하여 일부 실행 가능한 항목을 도출할 수 있습니다.

클라이언트 환경

사용자가 디바이스에서 Power Apps 앱을 경험할 때 브라우저 유형, 브라우저 버전 및 하드웨어 사양과 같은 여러 요인이 성능에 영향을 줄 수 있습니다. 이 섹션에서는 어떤 인사이트가 클라이언트 환경을 확인하는지 확인할 수 있습니다.

브라우저 형식

인사이트 ID: Perf.Environment.Client.Browser.Type

동기

특정 웹 브라우저 유형은 앱 성능에 영향을 줄 수 있습니다. 지원되지 않거나 최신 버전이 아닌 브라우저를 사용하면 성능이 저하될 수 있습니다. 이 인사이트는 다양한 브라우저, 특히 권장되지 않는 브라우저의 성능 영향을 제공합니다. 예를 들어 Power Apps는 Internet Explorer의 지원을 더 이상 사용하지 않습니다.

개선 방법

Internet Explorer과 같은 이전 브라우저를 사용하는 사용자가 있는 경우 최신 Chromium 기반 브라우저로 전환하세요. 사용자는 Microsoft Edge 또는 Google Chrome과 같은 최신 브라우저를 실행하는 것이 좋습니다.

참고

NPAPI를 활용하는 일부 레거시 애플리케이션은 Internet Explorer에서만 작동합니다.

브라우저 버전

인사이트 ID: Perf.Environment.Client.Browser.Version

동기

이 인사이트는 이전 버전의 브라우저에서 얼마나 많은 사용자가 앱을 사용하고 있는지 확인합니다. 사용자가 Internet Explorer와 같은 권장되지 않는 브라우저 유형이나 이전 버전의 브라우저가 아닌 최신 브라우저를 실행하는 경우에서도 성능이 저하됩니다.

개선 방법

사용자는 애플리케이션의 최신 버전으로 업데이트해야 합니다. 엔터프라이즈 고객은 그룹 정책을 특정 버전에 적용할 수 있습니다. USD(Unified Service Desk)도 컴퓨터의 기본 브라우저 설정을 사용하므로 기본 브라우저 유형 및 버전도 확인해야 합니다.

최소 시스템 요구 사항

인사이트 ID: Perf.Environment.Device.MimimumRequirements

동기

이 인사이트는 사용자의 환경이 최소 시스템 요구 사항을 충족하는지 여부를 확인합니다. 웹 애플리케이션 요구 사항을 확인하여 앱 유형에 따른 최소 시스템 요구 사항을 확인할 수 있습니다.

일반적으로 렌더링, 스크립팅 및 콘텐츠 다운로드와 같은 일부 작업은 클라이언트 측에서 발생합니다. 해당 활동을 수행하려면 최소 시스템 요구 사항을 충족해야 합니다.

개선 방법

사용자는 Power Apps의 최소 시스템 요구 사항을 충족하거나 초과하는 하드웨어를 사용해야 합니다.

HTTP 프로토콜

인사이트 ID: Perf.Environment.Client.Browser.HttpProtocol

동기

Power Apps 플랫폼은 HTTP/2를 지원합니다. 그러나 앱이 Power Apps에 대한 XHR(XMLHttpRequest) 요청에 HTTP/1.1 프로토콜을 사용하는 경우 HTTP/1.1 프로토콜을 사용한 요청에 대한 동시 제한으로 인해 성능이 저하될 수 있습니다.

개선 방법

이 인사이트를 통해 HTTP/1.1 프로토콜을 사용하는 일부 사용자가 식별된 경우 이러한 사용자의 클라이언트가 HTTP/2 프로토콜을 지원하도록 강력히 권장합니다.

여러 구성 및 네트워크 인프라는 VPN 네트워크, 프록시 서버 또는 디바이스 인터넷 옵션 설정과 같은 HTTP/2 프로토콜을 차단할 수 있습니다.

사용자는 브라우저에 포함된 개발 도구에서 어떤 프로토콜이 사용되었는지 확인할 수 있습니다. 아래 그림에서 네트워크 호출은 HTTP/2를 통해 발생했습니다.

HTTP 2 네트워크 호출의 예.

네트워크 프로토콜 추적이 HTTP/1.1을 나타내는 경우 다음 때문일 수 있습니다.

  • 인터넷 설정: 제어판의 Windows 인터넷 옵션 고급 탭에서 HTTP2 사용TLS 1.2 사용 옵션이 활성화되어 있지 않습니다.
  • VPN 및 프록시: Windows 인터넷 옵션이 HTTP2 및 TLS 1.2를 사용하도록 설정되어 있지만 VPN 또는 프록시가 최신 프로토콜을 지원하지 않으면 브라우저가 대체될 수 있습니다.

사용 패턴

이 범주는 페이지 로드 유형을 분석합니다. 웜 페이지 로드는 캐시와 기존 DOM 개체를 사용하여 페이지를 렌더링하는 반면 콜드 페이지 로드는 필요할 때 리소스를 다운로드하여 페이지를 새로 렌더링합니다. 사용자는 페이지 로드 유형을 구분하지 않지만 이 인사이트는 클라이언트에서 발생하는 페이지 로드 유형에 따라 분석 및 권장 사항을 제공합니다.

페이지 로드 유형.

인사이트 ID: Perf.Performance.PageLoadType

동기

웜 페이지 로드는 리소스가 로컬 캐시에서 로드되기 때문에 콜드 페이지 로드보다 빠릅니다.

참고

사용자가 브라우저의 새 탭이나 새 탭에서 양식을 열면 콜드 페이지 로드로 간주됩니다. 사용자가 브라우저의 활성 탭 내에서 앱의 다른 양식을 열면 웜 페이지 로드로 간주됩니다.

개선 방법

더 빠른 성능을 위해 웜 페이지 로드를 경험하려면 새 탭이나 브라우저 창 열기를 최소화하세요. 새 탭이나 브라우저 창을 여는 대신 단일 탭 내에서 활동을 유지하세요. 또한 InPrivate 또는 시크릿 모드에서 브라우저를 실행하지 않는 것이 좋습니다.

페이지 성능

많은 자사 모델 기반 앱은 페이지 유형과 관련하여 대시보드, 보기(EntityList) 및 양식으로 구성됩니다. 기본적으로 사용자는 대시보드를 로드하지만 앱 제작자와 관리자가 이를 변경할 수 있습니다. 대시보드에 많은 차트와 타일이 포함된 경우 대시보드가 느리게 로드될 수 있습니다. 마찬가지로 EntityList 및 양식이 많은 열을 추가하고 많은 레코드를 표시하도록 사용자 지정되면 페이지 로드 속도가 느려질 수도 있습니다. 따라서 페이지 로드 성능의 근본 원인이 다를 수 있으므로 페이지별 및 테이블별 성능을 확인하는 것이 유용할 수 있습니다.

이 섹션에서는 페이지 성능과 관련된 몇 가지 인사이트를 볼 수 있습니다.

느린 대시보드

인사이트 ID: Perf.ModelDriven.Page.Dashboard.SlowSQLQuery

동기

느린 SQL 쿼리 또는 대시보드에서 너무 많은 차트 및 타일을 사용하면 대시보드의 성능이 저하될 수 있습니다. 이 인사이트는 느린 SQL 쿼리의 영향을 받는 대시보드를 가리킵니다. 이 인사이트가 기록되면 세부 정보 창에 인사이트에 포함된 각 대시보드의 대시보드 ID가 포함됩니다.

개선 방법

대시보드 ID를 사용하여 대시보드 이름을 조회하는 방법은 다음과 같습니다. 그런 다음 재설계를 위해 고려할 대시보드를 결정할 수 있습니다.

  1. 모델 기반 앱(예: https://contoso.crm.dynamics.com)으로 이동합니다.

  2. 이 예(https://contoso.dynamics.com/api/data/v9.1/systemforms[DashboardId]/이름)에서는 앱 URL에 api/data/v9.1/systemforms[DashboardId]/이름을 추가하여 URL을 수정합니다.

  3. 아래와 비슷한 OData 요청을 받게 됩니다. 에이전트 대시보드는 아래에 표시된 대시보드 ID의 사용자 식별 이름을 나타냅니다.

    {"@odata.context":https://contoso.crm.dynamics.com/api/data/v9.1/$metadata#systemforms(2ff4a8cf-378b-e811-a964-000d3a30dc0a)/name,"value":"Contoso - Agent Dashboard"}

외부 호출이 느린 동기 플러그인

인사이트 ID: Perf.Sandbox.Performance.Plug-ins.ExternalCall

플러그인 및 사용자 지정 워크플로 활동은 HTTP 및 HTTPS 프로토콜을 통해 웹 서비스(외부 엔드포인트)에 액세스할 수 있습니다. 이러한 외부 서비스가 느리게 수행되면 플러그인 자체가 시간 초과되거나 느리게 수행됩니다.

동기

이 인사이트는 외부 엔드포인트의 성능을 확인하고 느린 외부 호출의 영향을 받는 앱의 플러그인을 감지합니다.

개선 방법

추가 정보: 외부 웹 서비스에 액세스(Microsoft Dataverse) - Power Apps | Microsoft Docs.

커스터마이제이션

제작자는 다음과 같은 모델 기반 앱으로 다양한 사용자 지정 항목을 수행할 수 있습니다.

  • 사용자 지정 JavaScript 함수를 수집하여 클라이언트에서 이벤트를 사용 설정합니다.
  • 사용자 지정 논리를 실행하는 데 사용되는 플러그인을 빌드하고 배포합니다.
  • 사용자 지정 테이블과 데이터를 정의하고 저장합니다.
  • 양식 및 보기와 같은 사용자 지정 및 표준 테이블 모두에 대한 종속 구성 요소를 정의합니다.

성능 관점에서 이러한 모든 사용자 지정은 사용자 지정이 모범 사례 및 권장 사항을 따르지 않는 상황에서 앱 응답을 저하시킬 수 있습니다. 제작자는 솔루션 검사기를 실행하여 개발 단계에서 사용자 지정을 검증할 수 있습니다.

다음 인사이트는 또한 사용자 지정의 런타임 사용자 데이터에서 분석 결과를 제공합니다.

XML HTTP 요청(XHR) 호출 유형

인사이트 ID: Perf.ModelDriven.Customization.Client.Script.XMLHttpRequestType

동기식 XMLHttpRequest 호출은 특히 네트워크가 느리거나 여러 호출이 필요한 경우 최종 사용자에게 심각한 성능 문제를 일으킬 수 있습니다. 브라우저가 멈추고 최종 사용자가 페이지를 클릭하거나 스크롤하거나 상호 작용할 수 없을 때 좌절감을 느낍니다.

이 인사이트는은 동기 메서드가 있는지 여부와 관련 성능을 나타냅니다.

동기

동기식 XHR 호출은 브라우저가 동기식 호출이 완료되어 페이지 속도가 느려지거나 완전히 정지될 때까지 기다려야 하므로 브라우저가 더 많은 작업을 수행하지 못하도록 차단합니다.

개선 방법

인사이트의 데이터 섹션에 언급된 상위 메서드를 동기식에서 비동기식으로 변경하는 것이 좋습니다. 추가 정보: 동기식 요청에서 전환하여 모델 기반 앱의 성능 향상

사용되지 않는 컨트롤

인사이트 ID: Perf.Customization.Controls.Deprecated

스위치 대칭 이동, 일정 컨트롤(V1), 선형 슬라이더, 방사형 손잡이, 호 노브, 선형 게이지와 같은 모델 기반 앱의 일부 이전 컨트롤. 웹사이트 미리보기 컨트롤, MultiSelectPicklistControl(V1) 및 플립 레이블과 함께 더 이상 사용되지 않습니다. 이러한 컨트롤 중 일부는 최신 웹 및 모바일을 염두에 둔 새로운 컨트롤로 대체할 수 있습니다. 추가 정보: 새로운 모델 기반 앱 컨트롤, 이전 컨트롤의 사용 중단

동기

오래된 컨트롤을 사용하면 성능, 안정성 및 접근성 문제가 발생할 수 있습니다. 또한 이러한 사용되지 않는 컨트롤의 일부 제한 사항이 새 컨트롤로 해결되었습니다. 예를 들어 토글 컨트롤과 Calendar 컨트롤(V2)은 Microsoft Fluent UI를 사용합니다.

개선 방법

  • 토글 컨트롤을 플립 라벨 및 플립 스위치 대신 사용합니다.
  • 일정 컨트롤(V1) 대신 일정 컨트롤(V2)을 사용합니다.
  • 사용되지 않는 다른 컨트롤을 평가하여 기존 양식 내에서 여전히 유용한지 확인합니다.

더 이상 사용되지 않는 버전과 새 컨트롤 간에는 중요한 디자인 변경 사항이 거의 없습니다.

더 이상 사용되지 않는 컨트롤에 대한 자세한 내용은 모델 기반 앱 컨트롤 사용 중단을 참조하세요.

샌드박스 성능 - 주요 플러그인

인사이트 ID: Perf.Sandbox.Performance.Plug-ins.Dominant

이 인사이트는 주요 플러그인, 즉 가장 많이 사용되는 플러그인을 식별하는 데 도움이 됩니다. 또한 95번째 백분위수에서 100밀리초를 초과하는 플러그인 실행 시간으로 주로 사용되는 플러그인이 느리게 수행되는지 여부도 나타냅니다. 이 인사이트는 최대 3개의 주요 플러그인을 나열합니다.

동기

느린 주 플러그인은 성능에 영향을 줍니다. 이러한 플러그인을 조사해야 합니다.

개선 방법

성능이 느린 플러그인을 조사하세요. 플러그인 및 워크플로 개발에 관한 모범 사례를 확인하세요.

느린 플러그인을 자세히 조사하려면 개발 또는 테스트 환경에서 플러그인 추적 로그 설정을 모두로 설정하고 지연이 발생한 위치를 결정할 수 있습니다. 그러나 프로덕션으로 이동하기 전에 설정을 비활성화하는 것을 잊지 마세요. 추가 정보: 추적 및 로깅

성능이 느린 플러그인을 조사하세요. 느린 플러그인의 몇 가지 이유는 다음과 같습니다.

  • 연결된 SQL 쿼리가 느리게 수행되어 플러그인 실행 시간이 증가했습니다.
  • 플러그인에 대한 단일 책임 원칙을 따르고 상당한 트랜잭션 경계가 있는 트랜잭션을 수행하지 마세요.
  • 플러그인이 느린 외부 호출을 할 수 있습니다.
  • 플러그인 로직은 멀티스레딩 환경에 최적화되어 있지 않습니다. 코드를 검사합니다.

느린 플러그인을 자세히 조사하려면 개발 또는 테스트 환경에서 플러그인 추적 로그 설정을 모두로 설정하고 지연이 발생한 위치를 결정할 수 있습니다. 그러나 프로덕션으로 이동하기 전에 설정을 비활성화하는 것을 잊지 마세요. 추가 정보: 추적 및 로깅

선행 와일드카드가 있는 저장된 쿼리

인사이트 ID: Perf.ModelDriven.Customization.SavedQuery.LeadingWildCard

선행 와일드카드는 검색 문자열의 시작 부분에 와일드카드(%)를 사용하는 같음 또는 같지 않음 조건입니다. 잘못 작성된 요청의 예는 다음과 같습니다.

<fetch version="1.0" output-format="xml-platform" mapping="logical"> 
    <entity name="account"> 
        <attribute name="accountid" /> 
        <attribute name="accountnumber" /> 
        <filter type="and"> 
            <condition attribute="accountnumber" operator="like" value="%124" /> 
        </filter> 
    </entity> 
</fetch>

동기

저장된 쿼리의 선행 와일드카드 문자(%)로 인해 쿼리가 시간 초과되거나 느리게 수행될 수 있습니다. 이 인사이트는 선행 와일드카드가 있는 느리게 저장된 쿼리를 가리킵니다.

개선 방법

선행 와일드카드를 사용하지 마세요. 검색 키에서 이러한 항목은 SQL Server에서 "포함"으로 변환되어 인덱스 검색을 사용하지 않지만 스캔을 수행합니다. 선행 와일드카드를 사용해야 하는 경우 다른 조건을 포함하여 검색 범위를 제한합니다. 검색 문자열 끝에 후행 와일드카드(%)를 사용해도 됩니다.

구성

플러그인 추적 로그 설정

인사이트 ID: Perf.Sandbox.Configuration.PluginTraceSettings

제작자는 플러그인 추적 로그를 통해 플러그인을 디버깅할 수 있습니다. Dataverse 관리자는 플러그인 및 사용자 지정 워크플로 활동 추적을 해제, 예외 또는 모두로 설정할 수 있습니다.

플러그인 추적 로그 설정.

동기

플러그인 추적 로그는 플러그인을 디버깅하거나 조정할 때만 모두로 설정해야 합니다. 추적 로깅의 양이 많으면 SQL Server에서 I/O 오버헤드가 발생할 수 있습니다. 또한 플러그인 추적 로그를 삭제하면 SQL Server에서 차단 또는 대기가 발생할 수 있습니다.

개선 방법

프로덕션 인스턴스에서 이 설정이 모두이고 플러그인에 의해 생성된 로그 볼륨이 높은 경우 예외로 변경하는 것이 좋습니다.

설정을 변경하려면 설정 > 관리 > 시스템 설정 > 사용자 지정 탭으로 이동하세요. 추가 정보: 로깅 및 추적

네트워크

네트워크 성능

네트워크 대기 시간과 처리량은 최종 사용자의 경험에 영향을 미치는 중요한 요소입니다. 대기 시간이 길고 처리량이 낮은 사용자는 통합 인터페이스에 액세스하는 동안 성능이 저하될 가능성이 더 큽니다. 이 인사이트는 성능이 낮은 네트워크에 있는 사용자 수와 성능이 어떠했는지 알려줍니다.

동기

네트워크 구성이 불량하면 앱 성능에 영향을 미칩니다.

개선 방법

네트워크에 사용자가 많고 성능이 좋지 않은 경우 사용자가 더 나은 성능의 네트워크로 전환하는 것이 좋습니다.

참조

성능 인사이트란 무엇인가요?