Query Targeting Las alertas a menudo indican consultas ineficientes.
Condiciones de alerta
Puede configurar las siguientes condiciones de alerta en el nivel de proyecto Página de configuración de alertas para activar alertas.
Query Targeting: Scanned Objects / Returned las alertas se activan cuando el número promedio de documentos escaneados en relación con el número promedio de documentos devueltos en todo el servidor en todas las operaciones durante un período de muestreo supera un umbral definido. La alerta por defecto usa un umbral 1000:1.
Idealmente, la proporción de documentos escaneados con respecto a los devueltos debería ser cercana a 1. Una proporción alta afecta negativamente al rendimiento de las consultas.
Query Targeting: Scanned / Returned Se produce si el número de claves de índice examinadas para completar una consulta, en relación con el número real de documentos devueltos, alcanza o supera un umbral definido por el usuario. Esta alerta no está habilitada de forma predeterminada.
Ejemplo
La siguiente entrada de registro de mongod muestra estadísticas generadas a partir de una consulta ineficiente:
<Timestamp> COMMAND <query> planSummary: COLLSCAN keysExamined:0 docsExamined: 10000 cursorExhausted:1 numYields:234 nreturned:4 protocol:op_query 358ms
Esta consulta analizó 10,000 documentos y devolvió solo 4 para una proporción de 2500, lo cual es altamente ineficiente. No se examinaron claves de índice, por lo que MongoDB analizó todos los documentos de la colección, lo que se conoce como escaneo de colección.
Desencadenantes comunes
La alerta de orientación de consulta generalmente ocurre cuando no hay un índice para admitir una o más consultas o cuando un índice existente solo admite parcialmente una o más consultas.
Los cursores de flujos de cambios que el proceso de búsqueda de MongoDB (mongot) utiliza para mantener actualizados los índices de búsqueda de MongoDB pueden contribuir a la relación de orientación de query y activar alertas de orientación de query si la relación es alta.
Solucionar el problema inmediato
Agregue uno o más índices para servir mejor las consultas ineficientes.
El Asesor de Rendimiento ofrece la forma más fácil y rápida de crear un índice. Monitorea las consultas que MongoDB considera lentas y recomienda índices para mejorar el rendimiento. Atlas ajusta dinámicamente el umbral de consultas lentas en función del tiempo de ejecución de las operaciones en el clúster.
Haga clic Create Index en una consulta lenta para obtener instrucciones sobre cómo crear el índice recomendado.
Nota
Es posible recibir una alerta de orientación de consulta para una consulta ineficiente sin recibir sugerencias de índice del Asesor de rendimiento si la consulta excede el umbral de consulta lenta y la relación entre documentos escaneados y devueltos es mayor que el umbral especificado en la alerta.
Además, puede utilizar los siguientes recursos para determinar qué consulta generó la alerta:
El Panel de rendimiento en tiempo real supervisa y muestra el tráfico de red actual y las operaciones de base de datos en las máquinas que alojan MongoDB en sus clústeres Atlas.
Los registros de MongoDB mantienen un registro de la actividad, incluidas las consultas, para cada
mongodinstancia en sus clústeres Atlas.El comando cursor.explain() para proporciona detalles de rendimiento para todas las
mongoshconsultas.Namespace Insights monitorea la latencia de consultas a nivel de colección.
Atlas Query Profiler registra las operaciones que Atlas considera lentas en comparación con el tiempo de ejecución promedio de todas las operaciones en su clúster.
Implemente una solución a largo plazo
Consulte lo siguiente para obtener más información sobre el rendimiento de las consultas:
Supervisar su progreso
Atlas proporciona los siguientes métodos para visualizar la orientación de las consultas:
Query Targeting métricas, que enfatizan altas tasas de objetos escaneados frente a objetos retornados.
Namespace Insights, que monitorea la latencia de consultas a nivel de colección.
El generador de perfiles de consultas, que describe consultas ineficientes específicas ejecutadas en el clúster.
Métricas de segmentación de consultas
Puede consultar las métricas históricas para visualizar el rendimiento de las consultas de su clúster. Para ver las métricas Query Targeting en la interfaz de usuario de Atlas:
En Atlas, ve a la página Clusters de tu proyecto.
Si aún no se muestra, seleccione la organización que contiene su proyecto deseado en el menú Organizations de la barra de navegación.
Si aún no aparece, selecciona el proyecto deseado en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Clusters en la sección Database.
La página de clústeres se muestra.
El gráfico Query Targeting muestra las siguientes métricas para las consultas ejecutadas en el servidor:
Métrica | Descripción |
|---|---|
Scanned Objects / Returned | Indica el número promedio de documentos examinados en relación con el número promedio de documentos devueltos. |
Scanned / Returned | Indica la cantidad de claves de índice examinadas para cumplir una consulta en relación con la cantidad real de documentos devueltos. |
Los cursores de flujos de cambios que el proceso de búsqueda de MongoDB (mongot) utiliza para mantener actualizados los índices de búsqueda de MongoDB pueden contribuir a la relación de orientación de query y activar alertas de orientación de query si la relación es alta.
Si alguna de estas métricas supera el umbral definido por el usuario, Atlas genera la alerta Query Targeting: Scanned Objects / Returned Query Targeting: Scanned / Returned o correspondiente.
Nota
También puede ver Query Targeting ratios de operaciones en tiempo real utilizando el Panel de rendimiento en tiempo real.
Namespace Insights
Namespace Insights monitoriza la latencia de consultas a nivel de colección. Puede ver métricas y estadísticas de latencia de consultas para determinados hosts y tipos de operación. Administre espacios de nombres anclados y seleccione hasta cinco espacios de nombres para mostrarlos en los gráficos de latencia de consultas correspondientes.
Para acceder a Namespace Insights:
En Atlas, ve a la página Clusters de tu proyecto.
Si aún no se muestra, seleccione la organización que contiene su proyecto deseado en el menú Organizations de la barra de navegación.
Si aún no aparece, selecciona el proyecto deseado en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Clusters en la sección Database.
La página de clústeres se muestra.
Perfilador de la query
El Analizador de Consultas contiene varias métricas que puede usar para identificar consultas ineficientes. Puede visualizar hasta las últimas 24 horas de operaciones de consulta. El Analizador de Consultas puede mostrar las Examined : Returned Ratio (claves de índice examinadas para los documentos devueltos) de las consultas registradas, lo que podría ayudarle a identificar las consultas que activaron una Query Targeting: Scanned / Returned alerta. El gráfico muestra el número de claves de índice examinadas para completar una consulta en relación con el número real de documentos devueltos.
Nota
La tasa Query Targeting: Scanned Objects / Returned de alerta predeterminada varía ligeramente. La tasa de alerta se activa según la relación entre el promedio de documentos escaneados y el promedio de documentos devueltos durante un período de muestreo.
Es posible que Atlas no registre las operaciones individuales que contribuyen a las tasas de segmentación de consultas debido a los umbrales establecidos automáticamente. Sin embargo, aún puede usar el Generador de perfiles de consultas y las Query Targeting métricas para analizar y optimizar el rendimiento de las consultas.
Para acceder al generador de perfiles de consultas:
En Atlas, ve a la página Clusters de tu proyecto.
Si aún no se muestra, seleccione la organización que contiene su proyecto deseado en el menú Organizations de la barra de navegación.
Si aún no aparece, selecciona el proyecto deseado en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Clusters en la sección Database.
La página de clústeres se muestra.