En esta página se describe cómo monitorizar y solucionar problemas de las consultas activas en tu base de datos. Las consultas activas son consultas de larga duración en tu base de datos que pueden afectar al rendimiento. Monitorizar estas consultas puede ayudar a identificar las causas de la latencia del sistema y del uso elevado de la CPU.
Puedes ver las consultas activas en el panel de control Estadísticas de las consultas. Estas consultas se muestran por la hora de inicio de la transacción. Si se están ejecutando muchas consultas, los resultados pueden limitarse a un subconjunto del total de consultas debido a las restricciones de memoria que el sistema aplica a la recogida de datos.
Antes de empezar
Para empezar a ver las consultas activas, debes habilitar las funciones de estadísticas de consultas avanzadas y activar el análisis de consultas activas en tu instancia. Para ello, sigue estos pasos:
En la Google Cloud consola, ve a la página Clusters.
En la lista de clústeres e instancias, haz clic en una instancia principal o en una instancia de grupo de lectura.
Haz clic en Estadísticas de las consultas.
Haz clic en Edit Settings (Editar configuración).
En la ventana Editar configuración de Información valiosa sobre las consultas, selecciona Habilitar funciones avanzadas de Información valiosa sobre las consultas en AlloyDB > Análisis de consultas activas.
Haz clic en Guardar cambios.
En la ventana Los cambios requieren reiniciar, haz clic en Confirmar y reiniciar.
Puedes usar la asistencia de Gemini Cloud para monitorizar y solucionar problemas de tus recursos de AlloyDB para PostgreSQL. Para obtener más información, consulta Monitorizar y solucionar problemas con la ayuda de Gemini.
Ver consultas activas
Para ver tus consultas activas, sigue estos pasos:
Crea un rol personalizado y añade el permiso
databaseinsights.monitoringViewer
de gestión de identidades y accesos (IAM).Añade este rol a cada usuario que esté viendo consultas activas.
En la Google Cloud consola, abre la página AlloyDB.
Haga clic en el nombre de un clúster para abrir su página Vista general.
Seleccione la pestaña Estadísticas de las consultas. El panel de control Estadísticas de las consultas muestra detalles sobre el clúster seleccionado.
Haz clic en la pestaña Vista de consultas activas. La pestaña contiene un resumen de las consultas activas que se están ejecutando, así como las 50 transacciones de mayor duración.
Puede filtrar la información de una de las siguientes formas:
- Base de datos: filtra la carga de consultas en una base de datos específica o en todas las bases de datos.
- Usuario: filtra la carga de consultas de un usuario de base de datos específico o de todos los usuarios.
- ID de nodo: se muestra solo en las instancias de grupo de lectura. Filtra la carga de las consultas en un nodo de instancia de grupo de lectura específico o en todos los nodos.
Tarjeta de resultados de resumen de todas las consultas activas normalizadas: ofrece un resumen de todas las consultas activas mostrando el total de conexiones en función de los siguientes parámetros:
- Distribución de las conexiones activas categorizadas por estado de conexión.
- Distribución de las conexiones activas en función de los distintos tipos de eventos de espera.
- Distribución de las duraciones de las transacciones de las consultas que no están en estado de inactividad.
Transacciones de mayor duración: ofrece un resumen de las 50 consultas en curso principales en los estados
active
yidle in transaction
, ordenadas de mayor a menor según el tiempo de ejecución.
Puede ver una lista de las 50 consultas activas normalizadas principales en el panel de control Estadísticas de las consultas.
Una consulta activa normalizada elimina los datos sensibles y devuelve un resumen. Dos consultas que son idénticas, excepto por los valores de la cláusula WHERE, tienen el mismo resumen. Por ejemplo, considera las tres consultas de ejemplo siguientes:
select * from my_table where id = 1;
select * from my_table where id = 2;
select * from my_table where id = 100;
La versión normalizada de estas consultas es el siguiente resumen:
select * from my_table where id = ?;
Una consulta que se ejecuta en diferentes sesiones se muestra como entradas distintas en el panel de control.
Ver las transacciones de mayor duración
En la tabla siguiente se describen las columnas de la tabla Transacciones de mayor duración del panel de control Estadísticas de las consultas:
Nombre de la columna | Descripción |
---|---|
ID de proceso | El ID de proceso es el identificador único de la conexión de la base de datos. |
ID de nodo | El ID de nodo es el identificador único del nodo de instancia del grupo de lectura en el que se ejecuta una consulta. |
Consulta | Texto de consulta de SQL normalizado. |
Estado | El estado actual de la conexión. Los valores de estado incluyen active y idle in transaction . |
Duración de la sesión | Duración de la sesión actual (en segundos). |
Duración de la transacción | Duración de la transacción actual (en segundos). |
Duración de la consulta | Duración de la consulta activa actual (en segundos). La duración de las consultas en el estado idle in transaction es 0 , ya que no se están ejecutando activamente. |
Tipo de evento de espera | Tipo de evento de espera que se produce durante la ejecución de la consulta. |
Evento de espera | Evento de espera que se produce durante la ejecución de la consulta. |
Base de datos | Nombre de la base de datos en la que se ejecuta esta conexión. |
Nombre de la aplicación | Nombre de la aplicación en la que se está ejecutando esta conexión. |
Nombre de usuario | Nombre del usuario de la base de datos conectado a la base de datos. |
Dirección del cliente | Dirección IP específica del cliente que ha enviado una consulta. |
Acción | Contiene un enlace para finalizar una transacción. |
La pantalla se actualiza automáticamente cada 60 segundos.
Si usa los campos Base de datos y Usuario para filtrar, se actualizarán los datos de la página.
Para analizar datos estáticos, inhabilita Actualización automática y usa el campo Filtro de la tabla Transacciones de mayor duración según sea necesario.
Finalizar una consulta o una transacción
Para cancelar una consulta o una transacción, debes tener el rol databaseinsights.operationsAdmin
. Para obtener más información, consulta la referencia de roles básicos y predefinidos de gestión de identidades y accesos.
Una transacción puede contener varias consultas. Para identificar qué consultas están activas en este momento, consulta la columna Consulta de la tabla Transacción de mayor duración.
Para finalizar una consulta o una transacción, sigue estos pasos:
- Selecciona la consulta en la tabla Transacción de mayor duración.
- Desplázate hacia la derecha hasta la columna Acción.
- Haz clic en Finalizar conexión.
En la ventana Finalizar conexión, haz clic en Confirmar.
La página se actualiza después de iniciar la cancelación. Si la finalización falla, no se muestra ningún mensaje y la consulta sigue apareciendo en la lista de consultas activas. Si la cancelación se realiza correctamente, la consulta dejará de aparecer en la lista.