El seguimiento de consultas de Explorar y el panel Rendimiento de Explorar proporcionan datos de rendimiento paso a paso de una consulta de Explorar. Estos datos pueden ayudar a identificar puntos de entrada clave para solucionar problemas de rendimiento con las consultas y proporcionar recomendaciones para realizar mejoras.
Explora el rastreador de consultas
El Seguimiento de consultas de Explorar muestra el progreso de una consulta de Explorar a través de las tres fases de la consulta mientras se ejecuta.
Si una consulta tarda mucho en ejecutarse, el rastreador de consultas puede indicar qué fase de la consulta está causando el problema de rendimiento. Esto es útil para identificar dónde pueden ocurrir problemas de rendimiento y dónde los esfuerzos de optimización pueden ser más eficaces.
El rastreador de consultas se muestra cuando se ejecuta una exploración, siempre y cuando esté abierto el panel Visualización o el panel Datos de Explorar.
Explora el panel Rendimiento
Para ver el panel Rendimiento de Explorar, haz clic en el vínculo Ver detalles del rendimiento, que está disponible en cualquier consulta de Explorar que se haya ejecutado.
El panel Rendimiento muestra el tiempo que la consulta pasó en cada una de las tres fases de la consulta y, además, incluye vínculos a la documentación de rendimiento y al panel de actividad del sistema Historial de consultas, que muestra datos de rendimiento históricos y actuales de la consulta y de la función Explorar que se usó para crearla.
Fases de consulta
Cuando una función Explorar de Looker ejecuta una consulta a la base de datos, esta se ejecuta en tres fases, como se indica a continuación:
- La fase de inicialización de la consulta
- La fase de ejecución de consultas
- La fase de resultados del procesamiento
Fase de inicialización de la consulta
Durante la fase de inicialización de la consulta, Looker realiza todas las tareas necesarias antes de que se envíe la consulta a tu base de datos. La fase de inicialización de la consulta incluye las siguientes tareas:
- Compila el modelo de LookML.
- Verifica si se deben compilar tablas derivadas persistentes (PDT).
- Cómo generar la consulta SQL
- Adquisición de la conexión a la base de datos
En la página de documentación Cómo comprender las métricas de rendimiento de las consultas, se describe cómo usar la exploración Métricas de rendimiento de las consultas en Actividad del sistema para ver desgloses detallados de una consulta. La fase de inicialización de la consulta del rastreador de consultas incluye los eventos que se describen en la fase de trabajador asíncrono, la fase de inicialización y la fase de control de conexión de la exploración Métricas de rendimiento de las consultas.
Fase de ejecución de la consulta
En la fase de ejecución de la consulta, Looker se comunica con tu base de datos, le envía consultas y muestra los resultados. Los problemas de rendimiento durante esta fase pueden indicar un problema con la base de datos externa, como PDT que tardan mucho tiempo en volver a crearse y que pueden necesitar optimización, o tablas de bases de datos externas que pueden necesitar optimización. La fase de Ejecución de la consulta incluye las siguientes tareas:
- Compilar los PDT de la base de datos que se requieren para la consulta de Explorar
- Ejecuta la consulta solicitada en la base de datos.
En la página de documentación Cómo comprender las métricas de rendimiento de las consultas, se describe cómo usar la exploración Métricas de rendimiento de las consultas en Actividad del sistema para ver desgloses detallados de una consulta. La fase Running query del rastreador de consultas incluye los eventos que se describen en la fase de consultas principales de la exploración Métricas de rendimiento de las consultas.
Entre los posibles pasos que puedes seguir si tienes problemas de rendimiento durante esta fase, se incluyen los siguientes:
- Crea Exploraciones con uniones
many_to_one
siempre que sea posible. Unir vistas desde el nivel más detallado hasta el más alto (many_to_one
) suele proporcionar el mejor rendimiento de las consultas. - Maximiza el almacenamiento en caché para sincronizarlo con tus políticas de ETL siempre que sea posible y reducir el tráfico de consultas de la base de datos. De forma predeterminada, Looker almacena en caché las consultas durante una hora. Puedes controlar la política de almacenamiento en caché y sincronizar las actualizaciones de datos de Looker con tu proceso de ETL aplicando datagroups dentro de Explorar con el parámetro
persist_with
. Maximizar el almacenamiento en caché permite que Looker se integre más estrechamente con la canalización de datos del backend, de modo que se pueda maximizar el uso de la caché sin correr el riesgo de analizar datos inactivos. Las políticas de almacenamiento en caché con nombre se pueden aplicar a un modelo completo o a Exploraciones y tablas derivadas persistentes (PDT) individuales. - Usa la función de conocimiento agregado de Looker para crear resúmenes o tablas de resumen que Looker pueda usar para las consultas siempre que sea posible, en especial para las consultas comunes de bases de datos grandes. También puedes usar la visibilidad agregada para mejorar drásticamente el rendimiento de paneles completos. Consulta el instructivo de conocimiento agregado para obtener más información.
- Usa PDT para realizar consultas más rápidas. Convierte Exploraciones con muchas combinaciones complejas o de bajo rendimiento, o dimensiones con subconsultas o subselecciones, en PDT para que las vistas estén preunidas y listas antes del tiempo de ejecución.
- Si tu dialecto de base de datos admite PDT incrementales, configura PDT incrementales para reducir el tiempo que Looker dedica a volver a compilar tablas de PDT.
- Evita unir vistas en Explorar en claves primarias concatenadas que se definen en Looker. En su lugar, únete a los campos base que conforman la clave primaria concatenada desde la vista. Como alternativa, vuelve a crear la vista como un PDT con la clave primaria concatenada predefinida en la definición de SQL de la tabla, en lugar de en el código LookML de una vista.
- Usa la herramienta Explain in SQL Runner para realizar comparativas.
EXPLAIN
produce una descripción general del plan de ejecución de consultas de tu base de datos para una consulta en SQL determinada, lo que te permite detectar los componentes de la consulta que se pueden optimizar. Obtén más información en la publicación de Comunidad Cómo optimizar SQL conEXPLAIN
. - Declara índices. Puedes ver los índices de cada tabla directamente en Looker desde SQL Runner. Para ello, haz clic en el ícono de ajustes de una tabla y, luego, selecciona Mostrar índices.
Las columnas más comunes que pueden beneficiarse de los índices son las fechas importantes y las claves externas. Agregar índices a estas columnas aumentará el rendimiento de casi todas las consultas. Esto también se aplica a los PDT. Los parámetros de LookML, como
indexes
,sort keys
ydistribution
, se pueden aplicar de manera adecuada.
Fase de procesamiento de resultados
Durante la fase de procesamiento de resultados, Looker procesa y renderiza los resultados de la consulta. La fase de procesamiento de resultados incluye las siguientes tareas:
- Transmite los resultados de las consultas a la caché.
- Cómo resolver cálculos basados en tablas
- Aplica formato a los resultados del lenguaje de plantillas Liquid
- Cómo combinar consultas
- Cómo calcular totales y subtotales
En la página de documentación Cómo comprender las métricas de rendimiento de las consultas, se describe cómo usar la exploración Métricas de rendimiento de las consultas en Actividad del sistema para ver desgloses detallados de una consulta. La fase Procesamiento de resultados del rastreador de consultas incluye los eventos que se describen en la fase posterior a la consulta de la exploración Métricas de rendimiento de las consultas.
Estos son algunos de los pasos que puedes seguir si tienes problemas de rendimiento durante esta fase:
- Usa funciones como combinar resultados, campos personalizados y cálculos basados en tablas con moderación. El objetivo de estas funciones es que se usen como pruebas de concepto para ayudarte a diseñar tu modelo. Se recomienda codificar los cálculos y las funciones que se usan con frecuencia en LookML, lo que generará SQL para que se procese en tu base de datos. Los cálculos excesivos pueden competir por la memoria de Java en la instancia de Looker, lo que hace que esta responda más lentamente.
- Limita la cantidad de vistas que incluyes en un modelo cuando hay una gran cantidad de archivos de vista. Si incluyes todas las vistas en un solo modelo, el rendimiento puede disminuir. Cuando hay una gran cantidad de vistas en un proyecto, considera incluir solo los archivos de vista que se necesitan en cada modelo. Considera usar convenciones de nomenclatura estratégicas para los nombres de archivos de vista para permitir la inclusión de grupos de vistas dentro de un modelo. En la documentación del parámetro
includes
, se describe un ejemplo. - Evita mostrar una gran cantidad de datos de forma predeterminada en las tarjetas del panel y los aspectos. Las consultas que muestran miles de datos consumirán más memoria. Asegúrate de que los datos se limiten siempre que sea posible aplicando
filtros del frontend a los paneles, las búsquedas y las exploraciones, y a nivel de LookML con los parámetros
required filters
,conditionally_filter
ysql_always_where
. - Descarga o entrega consultas con la opción Todos los resultados con moderación, ya que algunas pueden ser muy grandes y abrumar al servidor de Looker cuando se procesan.