다음을 통해 공유


Power BI에서 쿼리 진단 시각화 및 해석

소개

사용하려는 진단 기록하면 다음 단계에서는 해당 사용자가 말하는 내용을 이해할 수 있습니다.

이 짧은 자습서에서는 반복하지 않을 쿼리 진단 스키마의 각 열이 정확히 무엇을 의미하는지 잘 이해하는 것이 좋습니다. 여기에 전체 쓰기가 있습니다.

일반적으로 시각화를 빌드할 때 전체 상세 테이블을 사용하는 것이 좋습니다. 행 수에 관계없이 다양한 리소스에 소요된 시간이 어떻게 늘어나거나 네이티브 쿼리가 내보내졌는지를 보여 주는 일종의 묘사일 수 있습니다.

진단 기록하는 방법에 대한 문서에서 멘션 동일한 테이블(또는 거의 그 정도)에 대한 OData 및 SQL 추적(Northwind의 Customers 테이블)을 사용하고 있습니다. 특히 고객의 일반적인 질문과 추적 집합을 해석하기 쉬운 것 중 하나인 데이터 모델의 전체 새로 고침에 집중하겠습니다.

시각화 빌드

추적을 진행하는 경우 여러 가지 방법으로 추적을 평가할 수 있습니다. 이 문서에서는 두 가지 시각화 분할에 초점을 맞추겠습니다. 하나는 관심 있는 세부 정보를 표시하고 다른 하나는 다양한 요소의 기여 시간을 쉽게 살펴볼 수 있도록 합니다. 첫 번째 시각화의 경우 테이블이 사용됩니다. 원하는 필드를 선택할 수 있지만, 무슨 일이 일어나고 있는지 쉽고 개략적으로 살펴보는 데 권장되는 필드는 다음과 같습니다.

두 번째 시각화의 경우 한 가지 선택은 누적 세로 막대형 차트를 사용하는 것입니다. 'Axis' 매개 변수에서 'Id' 또는 'Step'을 사용할 수 있습니다. 새로 고침을 살펴보는 경우 편집기 자체의 단계와 아무 상관이 없기 때문에 'ID'를 살펴보려고 할 수 있습니다. 'Legend' 매개 변수의 경우 원하는 세분성에 따라 'Category' 또는 'Operation'을 설정해야 합니다. '값'의 경우 '전용 기간'을 설정하고 원시 기간 값을 얻을 수 있도록 %가 아닌지 확인합니다. 마지막으로 도구 설명의 경우 '가장 빠른 시작 시간'을 설정합니다.

시각화가 빌드되면 순서를 확인할 수 있도록 '가장 빠른 시작 시간' 오름차순으로 정렬해야 합니다.

세부 정보 및 시간 집계의 시각화입니다.

정확한 요구 사항이 다를 수 있지만 이 차트 조합은 다양한 진단 파일을 살펴보고 다양한 용도로 시작하는 데 적합합니다.

시각화 해석

위에서 멘션 쿼리 진단 사용하여 답변할 수 있는 많은 질문이 있지만 가장 자주 볼 수 있는 두 가지 질문은 시간이 어떻게 소요되는지 묻고 원본에 전송된 쿼리가 무엇인지 묻는 것입니다.

소요되는 시간을 묻는 것은 쉽고 대부분의 커넥터와 유사합니다. 다른 곳에서 멘션 쿼리 진단 경고는 커넥터에 따라 크게 다른 기능을 볼 수 있다는 것입니다. 예를 들어 파워 쿼리는 ODBC 드라이버에 보내는 내용만 표시하므로 많은 ODBC 기반 커넥터는 실제 백 엔드 시스템으로 전송되는 쿼리를 정확하게 기록하지 않습니다.

시간이 어떻게 소요되는지 확인하려면 위에서 빌드한 시각화만 볼 수 있습니다.

여기서 사용하는 샘플 쿼리의 시간 값이 너무 작기 때문에 Power BI에서 시간을 보고하는 방법을 사용하려면 파워 쿼리 편집기에서 전용 기간 열을 '초'로 변환하는 것이 좋습니다. 이 변환을 수행하면 차트를 살펴보고 시간이 소요되는 위치를 알 수 있습니다.

내 OData 결과의 경우 이미지에서 원본에서 데이터를 검색하는 데 대부분의 시간이 소요되었음을 알 수 있습니다. 범례에서 '데이터 원본' 항목을 선택하면 데이터 원본에 쿼리를 보내는 것과 관련된 다양한 작업이 모두 표시됩니다.

OData Northwind 쿼리 진단 요약입니다.

동일한 작업을 모두 수행하고 유사한 시각화를 빌드하지만 ODATA 대신 SQL 추적을 사용하면 두 데이터 원본이 어떻게 비교되는지 확인할 수 있습니다.

SQL 추적이 포함된 OData Northwind 쿼리 진단 요약입니다.

ODATA 진단 같이 데이터 원본 테이블을 선택하면 첫 번째 평가(이 이미지의 2.3)가 메타데이터 쿼리를 내보내고 두 번째 평가는 실제로 관심 있는 데이터를 검색하는 것을 볼 수 있습니다. 이 경우 소량의 데이터를 검색하기 때문에 다시 끌어온 데이터에는 약간의 시간이 걸리지만(전체 두 번째 평가가 발생하는 데 10분의 1초 미만, 데이터 검색 자체의 경우 20초 미만) 모든 경우에 해당되지는 않습니다.

위와 같이 범례에서 '데이터 원본' 범주를 선택하여 내보낸 쿼리를 볼 수 있습니다.

데이터 파고들기

경로 보기

예를 들어 OData 쿼리에서 다음과 같은 값이 있는 데이터 원본 쿼리가 있는 것을 볼 수 있습니다.

Request:
https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle%20eq%20%27Sales%20Representative%27&$select=CustomerID%2CCountry HTTP/1.1
Content-Type: application/json;odata.metadata=minimal;q=1.0,application/json;odata=minimalmetadata;q=0.9,application/atomsvc+xml;q=0.8,application/atom+xml;q=0.8,application/xml;q=0.7,text/plain;q=0.7

<Content placeholder>

Response:
Content-Type: application/json;odata.metadata=minimal;q=1.0,application/json;odata=minimalmetadata;q=0.9,application/atomsvc+xml;q=0.8,application/atom+xml;q=0.8,application/xml;q=0.7,text/plain;q=0.7
Content-Length: 435

<Content placeholder>

이 데이터 원본 쿼리는 단독 기간의 1%만 차지하는 작업과 연결됩니다. 한편, 비슷한 하나가있다 :

Request:
GET https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales Representative'&$select=CustomerID%2CCountry HTTP/1.1

Response:
https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales Representative'&$select=CustomerID%2CCountry
HTTP/1.1 200 OK

이 데이터 원본 쿼리는 배타적 기간의 거의 75%를 차지하는 작업과 연결됩니다. 경로를면 후자가 실제로 전자의 자식임을 알 수 있습니다. 즉, 첫 번째 쿼리는 기본적으로 '내부' 쿼리에 의해 추적되는 실제 데이터 검색과 함께 약간의 시간을 추가했습니다.

이러한 값은 극단적인 값이지만 볼 수 있는 범위 내에 있습니다.