Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Introducción
Una vez que haya registrado los diagnósticos que desea usar, el siguiente paso es poder comprender lo que dicen.
Resulta útil tener una buena comprensión de lo que significa exactamente cada columna del esquema de diagnóstico de consultas, lo que no se repetirá en este breve tutorial. Puedes encontrar un informe completo aquí.
En general, al compilar visualizaciones, es mejor usar la tabla detallada completa. Dado que, sin importar cuántas filas haya, es probable que esté observando algún tipo de descripción de cómo se suma el tiempo dedicado a distintos recursos o cuál fue la consulta nativa emitida.
Como se mencionó en nuestro artículo sobre cómo registrar los diagnósticos, estoy trabajando con los rastros de OData y SQL para la misma tabla (o casi): la tabla Customers de Northwind. En concreto, me centraré en la pregunta común de nuestros clientes y uno de los conjuntos de seguimientos más fáciles de interpretar: actualización completa del modelo de datos.
Creación de las visualizaciones
Cuando pases por trazas, hay muchas maneras de evaluarlos. En este artículo, nos centraremos en una división de dos visualizaciones: uno para mostrar los detalles que le interesan y el otro para examinar fácilmente las contribuciones de tiempo de varios factores. Para la primera visualización, se usa una tabla. Puede elegir los campos que quiera, pero los recomendados para ver lo que sucede de forma sencilla y a alto nivel en los datos son:
- Id
- Hora de comienzo
- Query
- paso
- Consulta de origen de datos
- Duración exclusiva (%)
- Recuento de filas
- Categoría
- Es consulta de usuario
- Camino
Para la segunda visualización, una opción es usar un gráfico de columnas apiladas. En el parámetro "Axis", es posible que quiera usar "Id" o "Step". Si estamos viendo la opción de refrescar, porque no tiene nada que ver con los pasos del propio Editor, probablemente solo queremos ver "Id". Para el parámetro "Legend", debe establecer "Category" o "Operation" (según la granularidad que desee). Para "Valor", establezca "Duración exclusiva" (y asegúrese de que no es el %, de modo que obtenga el valor de duración sin procesar). Por último, para la información sobre herramientas, establezca "Hora de inicio más temprana".
Una vez compilada la visualización, asegúrese de ordenar por "Hora de inicio más temprana" ascendente para que pueda ver el orden en que suceden las cosas.
Aunque sus necesidades exactas pueden diferir, esta combinación de gráficos es un buen lugar para empezar a examinar numerosos archivos de diagnóstico y para una serie de propósitos.
Interpretación de las visualizaciones
Como se mencionó anteriormente, hay muchas preguntas que puedes intentar responder con diagnósticos de consulta, pero las dos que vemos con más frecuencia son cómo se gasta el tiempo y cuál es la consulta que se envía al origen.
Preguntar cómo se gasta el tiempo es fácil y será similar para la mayoría de los conectores. Una advertencia sobre los diagnósticos de consulta, como se menciona en otros lugares, es que observará capacidades drásticamente diferentes dependiendo del conector. Por ejemplo, muchos conectores basados en ODBC no tendrán una grabación precisa de qué consulta se envía al sistema back-end real, ya que Power Query solo ve lo que envía al controlador ODBC.
Si queremos ver cómo se invierte el tiempo, solo podemos ver las visualizaciones que hemos creado anteriormente.
Ahora, dado que los valores de hora de las consultas de ejemplo que estamos usando aquí son tan pequeños, si queremos trabajar con la forma en que Power BI informa de la hora, es mejor si se convierte la columna Duración exclusiva a "Segundos" en el editor de Power Query. Una vez que hacemos esta conversión, podemos ver nuestro gráfico y obtener una idea decente de dónde se pasa el tiempo.
Para los resultados de OData, veo en la imagen que la gran mayoría del tiempo se ha dedicado a recuperar los datos del origen; si selecciono el elemento "Origen de datos" en la leyenda, me muestra todas las distintas operaciones relacionadas con el envío de una consulta al origen de datos.
Si realizamos todas las mismas operaciones y compilamos visualizaciones similares, pero con los seguimientos de SQL en lugar de los ODATA, podemos ver cómo se comparan los dos orígenes de datos.
Si seleccionamos la tabla Origen de datos, como con los diagnósticos de ODATA, podemos ver que la primera evaluación (2.3 en esta imagen) emite consultas de metadatos, con la segunda evaluación que realmente recupera los datos que nos importan. Dado que estamos recuperando pequeñas cantidades de datos en este caso, los datos extraídos tardan una pequeña cantidad de tiempo (menos de una décima de segundo para que se produzca la segunda evaluación completa, con menos de un xx de segundo para la recuperación de datos), pero eso no será cierto en todos los casos.
Como se ha indicado anteriormente, podemos seleccionar la categoría "Origen de datos" en la leyenda para ver las consultas emitidas.
Profundizar en los datos
Examinar las rutas de acceso
Cuando vea esto, si parece que el tiempo invertido es extraño, por ejemplo, en la consulta OData, es posible que vea que hay una consulta de origen de datos con el siguiente valor:
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>
Esta consulta de origen de datos está asociada a una operación que solo ocupa, por ejemplo, 1% de la duración exclusiva. Mientras tanto, hay una similar:
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
Esta consulta de origen de datos está asociada a una operación que ocupa casi 75% de la duración exclusiva. Si activas la Ruta, descubres que este último es realmente un niño del primero. Esto significa que la primera consulta básicamente agregó una pequeña cantidad de tiempo por sí sola, mientras que la consulta 'interna' se encarga de realizar el seguimiento de la recuperación de datos real.
Estos son valores extremos, pero están dentro de los límites de lo que se puede ver.