Query Targeting las alertas suelen indicar consultas ineficaces.
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.
Lo ideal sería que la relación entre documentos escaneados y documentos devueltos fuera cercana a 1. Una relación alta afecta negativamente al rendimiento de las consultas.
Query Targeting: Scanned / Returned Ocurre si el número de claves de índice examinadas para cumplir con una query en relación con la cantidad real de documentos devueltos cumple o supera un umbral definido por el usuario. Esta alerta no está activada por defecto.
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 query examinó 10,000 documentos y devolvió solo 4 para una proporción de 2500, lo cual es altamente ineficiente. No se examinaron llaves de índice, por lo que MongoDB escaneó todos los documentos de la colección, lo que se conoce como un escaneo de colección.
Desencadenantes comunes
La alerta de orientación de query normalmente se produce cuando no existe un índice que apoye la query o queries o cuando un índice existente solo respalda parcialmente una query o queries.
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.
Soluciona el problema inmediato
Agrega uno o más índices para servir mejor a las consultas ineficientes.
El Performance Advisor proporciona la forma más fácil y rápida de crear un índice. El Performance Advisor supervisa las queries que MongoDB considera lentas y recomienda índices para mejorar el desempeño. Atlas ajusta dinámicamente tu umbral de query lenta en función del tiempo de ejecución de las operaciones a lo largo de tu clúster.
Haga clic Create Index en la query 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, puedes utilizar los siguientes recursos para determinar qué query generó la alerta:
El Real-Time Performance Panel supervisa y muestra el tráfico de la red actual y las operaciones de la base de datos en las máquinas que alojan MongoDB en tus clústeres de Atlas.
Los registros de MongoDB mantienen un registro de actividad, incluidas las consultas, para cada instancia de
mongoden tus clústeres de Atlas.El cursor.explain() el comando para
mongoshproporciona detalles de rendimiento para todas las consultas.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
Consulta lo siguiente para obtener más información sobre el rendimiento de las consultas:
Supervisa tu progreso
Atlas proporciona los siguientes métodos para visualizar la orientación de query:
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 perfilador del query, que describe queries específicas ineficientes ejecutadas en el clúster.
query de orientación métricas
Puedes ver métricas históricas que te ayudarán a visualizar el rendimiento de las query de tu clúster. Para ver las métricas de 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 Query Targeting: Scanned Objects / Returned o la Query Targeting: Scanned / Returned alerta 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 perfilador del Query contiene varias métricas que se pueden utilizar para identificar queries ineficientes específicas. Puedes visualizar hasta las últimas 24 horas de operaciones de query. El Query Profiler puede mostrar el Examined : Returned Ratio (claves de índice examinadas en los documentos devueltos) de las consultas registradas, lo que podría ayudarle a identificar las consultas que activaron una Query Targeting: Scanned / Returned alerta. La gráfica muestra el número de claves de índice examinadas para cumplir con una query 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 perfilador del query:
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.