ER 형식의 실행을 추적하여 성능 문제 해결
전자 문서를 생성하기 위해 전자 보고(ER) 구성을 설계하는 프로세스의 일부로 애플리케이션에서 데이터를 가져오고 생성된 출력에 입력하는 데 사용되는 방법을 정의합니다. ER 성능 추적 기능은 ER 형식 실행의 세부 정보를 수집하고 성능 문제를 해결하는 데 사용하는 데 소요되는 시간과 비용을 크게 줄이는 데 도움이 됩니다. 이 자습서는 실행된 ER 형식에 대한 성능 추적을 수행하는 방법과 이러한 추적의 정보를 사용하여 성능을 개선하는 방법에 대한 지침을 제공합니다.
전제 조건
이 자습서의 예를 완료하려면 다음 액세스 권한이 있어야 합니다.
다음 역할 중 하나에 대한 액세스:
- 전자 보고 개발자
- 전자 보고 기능 컨설턴트
- 시스템 관리자
다음 역할 중 하나에 대해 애플리케이션과 동일한 테넌트에 프로비저닝된 Regulatory Configuration Services(RCS) 인스턴스에 대한 액세스:
- 전자 보고 개발자
- 전자 보고 기능 컨설턴트
- 시스템 관리자
다음 파일을 다운로드하여 로컬에 저장합니다.
파일 | 콘텐츠 |
---|---|
성능 추적 model.version.1 | 샘플 ER 데이터 모델 구성 |
성능 추적 metadata.version.1 | 샘플 ER 메타데이터 구성 |
성능 추적 mapping.version.1.1 | 샘플 ER 모델 매핑 구성 |
성능 추적 format.version.1.1 | 샘플 ER 형식 구성 |
ER 매개 변수 구성
애플리케이션에서 생성된 각 ER 성능 추적은 실행 로그 레코드의 첨부 파일로 저장됩니다. 문서 관리(DM) 프레임워크는 이러한 첨부 파일을 관리하는 데 사용됩니다. 성능 추적을 첨부하는 데 사용해야 하는 DM 문서 유형을 지정하려면 ER 매개변수를 미리 구성해야 합니다. 전자 보고 작업 영역에서 전자 보고 매개 변수 를 선택합니다. 그런 다음 전자 보고 매개변수 페이지에서 첨부 파일 탭의 기타 필드에서 성능 추적에 사용할 DM 문서 유형을 선택합니다.
기타 조회 필드에서 사용할 수 있게 하려면 문서 유형 페이지에서 DM 문서 유형이 다음과 같은 방식으로 구성되어야 합니다(조직 관리 > 문서 관리 > 문서 유형).
- 클래스: 파일 첨부
- 그룹: 파일
참고
DM 첨부 파일은 회사별로 다르기 때문에 선택한 문서 유형은 현재 인스턴스의 모든 회사에서 사용할 수 있어야 합니다.
RCS 매개 변수 구성
생성된 ER 성능 추적은 ER 형식 디자이너와 ER 매핑 디자이너를 사용하여 분석을 위해 RCS로 가져옵니다. ER 성능 추적은 ER 형식과 관련된 실행 로그 레코드의 첨부 파일로 저장되기 때문에 성능 추적을 첨부하는 데 사용해야 하는 DM 문서 유형을 지정하려면 사전에 RCS 매개변수를 구성해야 합니다. 귀사에 프로비저닝된 RCS의 경우 전자 보고 작업 공간에서 전자 보고 매개변수 를 선택합니다. 그런 다음 전자 보고 매개변수 페이지에서 첨부 파일 탭의 기타 필드에서 성능 추적에 사용할 DM 문서 유형을 선택합니다.
기타 조회 필드에서 사용할 수 있게 하려면 문서 유형 페이지에서 DM 문서 유형이 다음과 같은 방식으로 구성되어야 합니다(조직 관리 > 문서 관리 > 문서 유형).
- 클래스: 파일 첨부
- 그룹: 파일
ER 솔루션 설계
공급업체 트랜잭션을 표시하는 새 보고서를 생성하기 위해 새 ER 솔루션을 설계하기 시작했다고 가정합니다. 공급업체 페이지 에서 현재 선택한 공급업체에 대한 거래를 찾을 수 있습니다(지불 계정 > 공급업체 > 모든 공급업체 로 이동하고 공급업체를 선택한 다음 작업 창의 공급 업체 탭에서 트랜잭션 그룹의 트랜잭션 선택). 그러나 XML 형식의 하나의 전자 문서에서 모든 벤더 트랜잭션을 동시에 갖고 싶어합니다. 이 솔루션은 필요한 데이터 모델, 메타데이터, 모델 매핑 및 형식 구성 요소를 포함하는 여러 ER 구성으로 구성됩니다.
회사에 프로비저닝된 RCS 인스턴스에 로그인합니다.
이 자습서에서는 샘플 회사 Litware, Inc. 에 대한 구성을 만들고 수정합니다. 따라서 이 구성 제공자가 RCS에 추가되었고 활성으로 선택되었는지 확인합니다. 안내는 구성 공급자를 만들고 활성으로 표시 절차를 참조하세요.
전자 보고 작업 영역에서 보고 구성 타일을 선택합니다.
구성 페이지에서 전제 조건으로 다운로드한 ER 구성을 데이터 모델, 메타데이터, 모델 매핑, 형식의 순서로 RCS로 가져옵니다. 각 구성에 대해 다음 단계를 따르십시오.
- 작업 창에서 교환 > XML 파일에서 로드 를 선택합니다.
- 검색 을 선택하여 XML 형식의 필수 ER 구성에 적합한 파일을 선택합니다.
- 확인 을 선택합니다.
ER 솔루션을 실행하여 실행 추적
ER 솔루션의 첫 번째 버전 설계를 완료했다고 가정합니다. 이제 인스턴스에서 테스트하고 실행 성능을 분석하려고 합니다.
RCS에서 재무 및 운영으로 ER 구성 가져오기
애플리케이션 인스턴스에 로그인합니다.
이 자습서에서는 RCS 인스턴스(ER 구성 요소를 디자인하는 위치)에서 인스턴스(테스트하고 마지막으로 사용하는 위치)로 구성을 가져옵니다. 따라서 필요한 모든 아티팩트가 준비되었는지 확인해야 합니다. 안내는 Regulatory Configuration Services(RCS)에서 전자 보고(ER) 구성 가져오기 절차를 참조하세요.
RCS에서 애플리케이션으로 구성을 가져오려면 다음 단계를 따르세요.
- 전자 보고 작업 영역의 Litware, Inc. 구성 공급자 타일에서 리포지토리 를 선택합니다.
- 구성 리포지토리 페이지에서 RCS 유형의 저장소를 선택한 다음 열기 를 선택합니다.
- 구성 빠른 탭에서 성능 추적 형식 구성을 선택합니다.
- 버전 빠른 탭에서 선택한 형식 구성의 초안 버전 1.1 을 선택한 다음 가져오기 를 선택합니다.
데이터 모델 및 모델 매핑 구성의 해당 버전은 가져온 ER 형식 구성의 전제 조건으로 자동으로 가져옵니다.
ER 성능 추적 켜기
조직 관리 > 전자 > 보고 구성 으로 이동합니다.
작업 페이지의 작업 창에 있는 작업 탭에 있는 작업 그룹에서 작업 취소 를 선택합니다.
사용자 매개변수 대화 상자에서 실행 추적 섹션에서 다음 단계를 따르세요.
실행 추적 형식 필드에서 ER 형식 및 매핑 요소에 대해 실행 세부 정보를 저장해야 하는 생성된 성능 추적 형식을 지정합니다.
디버그 추적 형식 – 실행 시간이 짧은 ER 형식을 대화식으로 실행하려는 경우 이 값을 선택합니다. 그런 다음 ER 형식 실행에 대한 세부 정보 수집이 시작됩니다. 이 값을 선택하면 성능 추적은 다음 작업에 소요된 시간에 대한 정보를 수집합니다.
- 데이터를 가져오기 위해 호출되는 모델 매핑에서 각 데이터 소스 실행
- 각 형식 항목을 처리하여 생성된 출력에 데이터 입력
디버그 추적 형식 값을 선택하면 ER Operation Designer에서 추적 내용을 분석할 수 있습니다. 거기에서 추적에 언급된 ER 형식 또는 매핑 요소를 볼 수 있습니다.
집계된 추적 형식 – 배치 모드에서 실행 시간이 긴 ER 형식을 실행하려는 경우 이 값을 선택합니다. 그런 다음 ER 형식 실행에 대한 집계된 세부 정보 수집이 시작됩니다. 이 값을 선택하면 성능 추적은 다음 작업에 소요된 시간에 대한 정보를 수집합니다.
- 데이터를 가져오기 위해 호출되는 모델 매핑에서 각 데이터 소스 실행
- 데이터를 가져오기 위해 호출되는 형식 매핑에서 각 데이터 소스 실행
- 각 형식 항목을 처리하여 생성된 출력에 데이터 입력
집계된 추적 형식 값은 Microsoft Dynamics 365 Finance 버전 10.0.20 이상에서 사용할 수 있습니다.
ER 형식 디자이너와 ER 모델 매핑 디자이너에서 단일 구성 요소에 대한 총 실행 시간을 볼 수 있습니다. 또한 추적에는 실행 횟수, 단일 실행의 최소 및 최대 시간과 같은 실행에 대한 세부 정보가 포함됩니다.
참고
이 추적은 추적된 구성 요소 경로를 기반으로 수집됩니다. 따라서 단일 상위 구성 요소에 이름이 지정되지 않은 여러 하위 구성 요소가 포함되어 있거나 여러 하위 구성 요소에 동일한 이름이 있는 경우 통계가 정확하지 않을 수 있습니다.
다음 옵션을 네 로 설정하여 ER 모델 매핑 및 ER 형식 구성 요소 실행에 대한 특정 세부 정보를 수집합니다.
쿼리 통계 수집 – 이 옵션을 켜면 성능 추적에서 다음 정보를 수집합니다.
- 데이터 소스에서 수행한 데이터베이스 호출 수
- 데이터베이스로의 중복 호출 횟수
- 데이터베이스 호출에 사용된 SQL 문의 세부 정보
캐싱 액세스 추적 – 이 옵션이 켜져 있으면 성능 추적이 ER 모델 매핑의 캐시 사용에 대한 정보를 수집합니다.
추적 데이터 액세스 – 이 옵션이 켜져 있으면 성능 추적은 레코드 목록 유형의 실행된 데이터 소스에 대해 데이터베이스에 대한 호출 수에 대한 정보를 수집합니다.
추적 목록 열거형 – 이 옵션이 켜져 있으면 성능 추적은 레코드 목록 유형의 데이터 원본에서 요청되는 레코드 수에 대한 정보를 수집합니다.
참고
사용자 매개변수 대화 상자의 매개 변수는 사용자와 현재 회사에 따라 다릅니다.
ER 형식 실행
- DEMF 회사를 선택합니다.
- 조직 관리 > 전자 > 보고 구성 으로 이동합니다.
- 구성 페이지의 구성 트리에서 성능 추적 형식 항목을 선택합니다.
- 작업 창에서 송장 을 선택합니다.
생성된 파일에는 6개 공급업체의 265개 트랜잭션에 대한 정보가 표시됩니다.
실행 추적 검토
애플리케이션에서 생성된 추적 내보내기
성능 추적은 소스 ER 형식에서 분리되며 외부 zip 파일로 직렬화할 수 있습니다.
조직 관리 > 전자 보고 > 구성 디버그 로그 로 이동합니다.
전자 보고 실행 로그 페이지의 왼쪽 창에서 구성 이름 필드에 있는 성능 추적 형식 을 선택하여 성능 추적 형식 구성의 실행에 의해 생성된 로그 레코드를 찾습니다.
페이지의 오른쪽 상단 모서리에 있는 첨부 버튼(종이 클립 기호)을 선택하거나 Ctrl+Shift+A 를 누릅니다.
전자 보고 실행 로그에 대한 첨부 파일 페이지의 작업 창에서 열기 를 선택하여 성능 추적을 zip 파일로 가져와 로컬에 저장합니다.
참고
생성된 추적에는 GUID 형식의 고유 보고서 식별자를 통해 소스 ER 보고서에 대한 참조가 있습니다. 형식의 버전 번호는 고려되지 않습니다.
실행된 ER 형식에 대해 생성된 성능 추적과 ER 모델 매핑 간의 연결은 사용된 루트 설명자와 공통 데이터 모델을 기반으로 합니다. 형식의 버전 번호 및 모델 매핑은 고려되지 않습니다. 모델 매핑에 대한 모델 매핑의 기본값 플래그 설정도 고려되지 않습니다.
생성된 추적을 RCS로 가져오기
RCS의 전자 보고 작업 공간에서 보고 구성 타일을 선택합니다.
구성 페이지의 구성 트리에서 성능 추적 모델 항목을 확장하고 성능 추적 형식 항목을 선택합니다.
작업 창에서 디자이너 를 선택합니다.
형식 디자이너 페이지의 작업 창에서 성능 추적 을 선택합니다.
성능 추적 결과 설정 대화 상자에서 성능 추적 가져오기 를 선택합니다.
검색 을 선택하여 이전에 내보낸 .Zip 파일을 선택합니다.
확인 을 선택합니다.
RCS에서 분석을 위해 성능 추적 사용 – 형식 실행
RCS의 형식 디자이너 페이지에서 펼치기/접기 를 선택하여 모든 형식 항목의 내용을 확장합니다.
현재 형식의 일부 항목에 대한 추가 정보가 표시됩니다.
- 형식 항목을 사용하여 생성된 출력에 데이터를 입력하는 데 소요된 실제 시간
- 전체 출력을 생성하는 데 소요된 총 시간의 백분율로 표시되는 동일한 시간
형식 디자이너 페이지를 닫습니다.
RCS에서 분석을 위해 성능 추적 사용 – 모델 매핑
- RCS의 구성 페이지의 구성 트리에서 성능 추적 매핑 항목을 선택합니다.
- 작업 창에서 디자이너 를 선택합니다.
- 디자이너 를 선택합니다.
- 모델 매핑 디자이너 페이지의 작업 창에서 성능 추적 을 선택합니다.
- 이전에 가져온 추적을 선택합니다.
- 확인 을 선택합니다.
현재 모델 매핑의 일부 데이터 소스 항목에 대해 새 정보를 사용할 수 있습니다.
- 데이터 소스를 사용하여 데이터를 가져오는 데 소요된 실제 시간
- 전체 모델 매핑을 실행하는 데 소요된 총 시간의 백분율로 표시되는 동일한 시간
ER에서 VendTable/<Relations/VendTrans.VendTable_AccountNum 데이터 원본이 실해오디는 동안 현재 모델 매핑이 데이터베이스 요청을 복제함을 알립니다. 이 중복은 공급업체 트랜잭션 목록이 반복되는 각 공급업체 레코드에 대해 두 번 호출되기 때문에 발생합니다.
- 구성된 바인딩을 기반으로 데이터 모델의 각 트랜잭션에 대한 세부 정보를 입력하기 위해 한 번의 호출이 수행됩니다.
- 데이터 모델에서 공급업체당 계산된 트랜잭션 수를 입력하기 위해 한 번의 호출이 수행됩니다.
값 [Q:530] 은 VendTrans 테이블이 530번 호출되어 해당 테이블의 레코드를 VendTable/<Relations/VendTrans.VendTable_AccountNum 데이터 원본으로 반환함을 나타냅니다. 값 [530] 은 VendTable/<Relations/VendTrans.VendTable_AccountNum 데이터 소스는 해당 데이터 소스에서 레코드를 반환하고 데이터 모델에 세부 정보를 입력하기 위해 530번 호출되었음을 나타냅니다.
VendTable/<Relations/VendTrans.VendTable_AccountNum 데이터 원본은 265개 트랜잭션에 대한 세부 정보를 가져오고 모델 매핑의 성능을 개선하기 위해 수행되는 호출 수를 줄입니다.
LedgerTransTypeList 데이터 소스에 대한 호출 수를 줄이는 것도 유용할 수 있습니다. 이 데이터 소스는 LedgerTransType 열거형의 각 값을 레이블과 연결하는 데 사용됩니다. 이 데이터 소스를 사용하여 적절한 레이블을 찾아 각 공급업체 트랜잭션에 대한 데이터 모델에 입력할 수 있습니다. 이 데이터 소스에 대한 현재 호출 수(9,027)는 265 트랜잭션에 대해 상당히 높습니다.
실행 추적 정보를 기반으로 모델 매핑 개선
모델 매핑의 논리 수정
다음 단계에 따라 캐싱을 사용하여 데이터베이스에 대한 중복 호출을 방지하세요.
- RCS의 모델 매핑 디자이너 페이지에 있는 데이터 원본 창에서 VendTable 항목을 선택합니다.
- 캐시 를 선택합니다.
- VendTable 항목을 확장하고 VendTable 데이터 소스에 대한 일대다 관계 목록을 확장(<Relations 항목)하고 VendTrans.VendTable_AccountNum 항목을 선택합니다.
- 캐시 를 선택합니다.
LedgerTransTypeList 데이터 소스를 VendTable 데이터 소스의 범위로 가져오려면 다음 단계를 따르세요.
- 데이터 소스 유형 창에서 기능 항목을 확장하고 계산된 필드 항목을 선택합니다.
- 데이터 소스 창에서 VendTable 항목을 선택합니다.
- 추가 를 선택합니다.
- 이름 필드에 $TransType 을 입력합니다.
- 수식 편집 을 선택합니다.
- 공식 필드에 LedgerTransTypeList 를 입력합니다.
- 저장 을 선택합니다.
- 수식 편집기 페이지를 닫습니다.
- 확인 을 클릭합니다.
$TransType 필드의 캐싱을 수행하려면 다음 단계를 따르세요.
- LedgerTransTypeList 항목을 선택합니다.
- 캐시 를 선택합니다.
- VendTable.$TransType 항목을 선택합니다.
- 캐시 를 선택합니다.
다음 단계를 따라 $TransTypeRecord 필드를 변경하여 캐시된 $TransType 필드를 사용하기 시작합니다.
데이터 소스 창에서 VendTable 항목을 확장하고 <Relations 항목을 확장하고 VendTrans.VendTable_AccountNum 항목을 확장하고 VendTable.VendTrans.VendTable_AccountNum.$TransTypeRecord 항목을 선택합니다.
편집 을 선택합니다.
수식 편집 을 선택합니다.
공식 필드에서 다음 표현식을 찾습니다.
FIRSTORNULL (WHERE (LedgerTransTypeList, LedgerTransTypeList.Enum = @.TransType))
수식 필드에 다음 표현식을 입력합니다.
FIRSTORNULL (WHERE (VendTable.'$TransType', VendTable.'$TransType'.Enum = @.TransType)).
저장 을 선택합니다.
수식 편집기 페이지를 닫습니다.
확인 을 선택합니다.
저장 을 선택합니다.
모델 매핑 디자이너 페이지를 닫습니다.
모델 매핑 페이지를 닫습니다.
수정된 버전의 ER 모델 매핑 완료
- RCS의 구성 페이지에 있는 버전 빠른 탭에서 버전 1.2 의 성능 추적 매핑 구성을 선택합니다.
- 상태 변경 을 선택합니다.
- 완료 를 선택합니다.
수정된 ER 모델 매핑 구성을 RCS에서 애플리케이션으로 가져오기
이 토픽 앞부분의 RCS에서 재무 및 운영으로 ER 구성 가져오기 센션의 단계를 반복하여 버전 1.2의 성능 추적 매핑 구성을 가져옵니다.
수정된 ER 솔루션을 실행하여 실행 추적
ER 형식 실행
이 항목 앞부분의 ER 형식 실행 섹션에 있는 단계를 반복하여 새 성능 추적을 생성합니다.
실행 추적 작업
애플리케이션에서 생성된 추적 내보내기
이 항목 앞부분의 애플리케이션에서 생성된 추적 내보내기 섹션의 단계를 반복하여 새 성능 추적을 로컬로 저장합니다.
생성된 추적을 RCS로 가져오기
이 항목 앞부분의 RCS로 생성된 추적 가져오기 섹션의 단계를 반복하여 새 성능 추적을 RCS로 가져옵니다.
RCS에서 분석을 위해 성능 추적 사용 – 모델 매핑
이 토픽 앞부분의 RCS – 모델 매핑에서 분석을 위해 성능 추적 사용 섹션의 단계를 반복하여 최신 성능 추적을 분석합니다.
모델 매핑을 조정하면 데이터베이스에 대한 중복 쿼리가 제거됩니다. 이 모델 매핑에 대한 데이터베이스 테이블 및 데이터 원본에 대한 호출 수도 감소했습니다. 따라서 전체 ER 솔루션의 성능이 향상되었습니다.
추적 정보에서 VendTable 데이터 원본의 값 [12] 는 이 데이터 원본이 12번 호출되었음을 나타냅니다. 값 [Q:6] 은 6개의 호출이 VendTable 테이블에 대한 데이터베이스 호출로 변환되었음을 나타냅니다. 값 [C:6] 은 데이터베이스에서 가져온 레코드가 캐시되었고 다른 6개의 호출이 캐시를 사용하여 처리되었음을 나타냅니다.
LedgerTransTypeList 데이터 소스에 대한 호출 수가 9,027에서 240으로 줄었습니다.
애플리케이션에서 실행 추적 검토
RCS 외에도 일부 버전은 ER 프레임워크 디자이너 경험을 위한 기능을 제공할 수 있습니다. 이러한 버전에는 디자인 모드 활성화 옵션을 켤 수 있습니다. 이 옵션은 전자 보고 매개변수 페이지의 일반 탭에서 찾을 수 있고, 전자 보고 작업 공간에서 열 수 있습니다.
이러한 버전 중 하나를 사용하는 경우 애플리케이션에서 직접 생성된 성능 추적의 세부 정보를 분석할 수 있습니다. 응용 프로그램에서 내보내고 RCS로 가져올 필요가 없습니다.
외부 도구를 사용하여 실행 추적 검토
사용자 매개 변수 구성
- 조직 관리 > 전자 > 보고 구성 으로 이동합니다.
- 작업 페이지의 작업 창에 있는 작업 탭에 있는 작업 그룹에서 작업 취소 를 선택합니다.
- 사용자 매개 변수 대화 상자에서 실행 추적 섹션의 실행 추적 형식 필드에서 PerfView XML 을 선택합니다.
ER 형식 실행
이 항목 앞부분의 ER 형식 실행 섹션에 있는 단계를 반복하여 새 성능 추적을 생성합니다.
웹 브라우저는 다운로드용 zip 파일을 제공합니다. 이 파일에는 PerfView 형식의 성능 추적이 포함되어 있습니다. 그런 다음 PerfView 성능 분석 도구를 사용하여 ER 형식 실행의 세부 정보를 분석할 수 있습니다.
외부 도구를 사용하여 데이터베이스 쿼리가 포함된 실행 추적 검토
ER 프레임워크에 대한 개선 사항으로 인해 PerfView 형식으로 생성된 성능 추적은 이제 ER 형식 실행에 대한 자세한 정보를 제공합니다. Microsoft Dynamics 365 for Finance and Operations 버전 10.0.4(2019년 7월)부터 이 추적에는 애플리케이션 데이터베이스에 대해 실행된 SQL 쿼리의 세부 정보도 포함될 수 있습니다.
사용자 매개 변수 구성
조직 관리 > 전자 보고 > 구성 으로 이동합니다.
작업 페이지의 작업 창에 있는 작업 탭에 있는 작업 그룹에서 작업 취소 를 선택합니다.
사용자 매개변수 대화 상자에서 실행 추적 섹션에서 다음 매개 변수를 설정하세요.
- 실행 추적 형식 필드에서 PerfView XML 을 선택합니다.
- 쿼리 통계 수집 옵션을 네 로 설정합니다.
- 쿼리 추적 옵션을 예 로 설정합니다.
ER 형식 실행
이 항목 앞부분의 ER 형식 실행 섹션에 있는 단계를 반복하여 새 성능 추적을 생성합니다.
웹 브라우저는 다운로드용 zip 파일을 제공합니다. 이 파일에는 PerfView 형식의 성능 추적이 포함되어 있습니다. 그런 다음 PerfView 성능 분석 도구를 사용하여 ER 형식 실행의 세부 정보를 분석할 수 있습니다. 이제 이 추적에는 ER 형식을 실행하는 동안 SQL 데이터베이스 액세스에 대한 세부 정보가 포함됩니다.