Saltar al contenido
Telemetry
Fiabilidad de la base de datos receta SQL

Encuentre esperas y bloqueos de bloqueo de bases de datos

Clasifique las huellas dactilares de operaciones de bases de datos bloqueadas por recuento de incidentes, duración de la espera, bloqueos no resueltos y puntos muertos detectados.

Intermediodatabase_lock_wait_eventsRevisado 2026-07-28Probado con Apache DataFusion 45.2.0

Revisado por el equipo de producto Telemetry en . Compatibilidad con SQL, contrato de eventos, resultados sintéticos y advertencias operativas. Revisar los estándares y la propiedad

Pregunta respondida

¿Qué operaciones de base de datos crean la contienda de bloqueo más grave?

La contención de bloqueo se vuelve procesable cuando las operaciones de aplicaciones bloqueadas se conectan a una huella digital estable del bloqueador, la duración de la espera y el resultado de la resolución.

Contrato de evento

Campos que espera la consulta

CampoTipoPor que existe
timestamp_utcTimestampCuando se observó la espera de bloqueo.
database_nameUtf8Nombre de la base de datos lógica aprobada.
blocked_query_fingerprintUtf8Etiqueta normalizada para la operación de la aplicación bloqueada.
blocking_query_fingerprintUtf8Etiqueta normalizada para la operación de retención de la cerradura.
lock_typeUtf8Categoría de bloqueo controlado.
wait_msFloat64Espera de bloqueo observada en milisegundos.
resolvedBooleanSi la espera terminó sin quedar bloqueado.
deadlock_detectedBooleanSi la base de datos informó un resultado de punto muerto.
transaction_idUtf8Identificador de transacción seguro para la aplicación.
environmentUtf8Entorno de implementación.
DataFusionSQL

Copiar la consulta

sql
SELECT
  database_name,
  blocked_query_fingerprint,
  blocking_query_fingerprint,
  COUNT(*) AS lock_wait_incidents,
  COUNT(DISTINCT transaction_id) AS affected_transactions,
  AVG(wait_ms) AS average_wait_ms,
  MAX(wait_ms) AS maximum_wait_ms,
  SUM(CASE WHEN NOT resolved THEN 1 ELSE 0 END) AS unresolved_incidents,
  SUM(CASE WHEN deadlock_detected THEN 1 ELSE 0 END) AS deadlocks
FROM database_lock_wait_events
WHERE timestamp_utc >= now() - INTERVAL '7 days'
  AND environment = 'production'
GROUP BY
  database_name,
  blocked_query_fingerprint,
  blocking_query_fingerprint
HAVING COUNT(*) >= 3
ORDER BY deadlocks DESC, maximum_wait_ms DESC;

Esta consulta de solo lectura se planifica y ejecuta en una tabla escrita vacía con Apache DataFusion 45.2.0. El resultado de la muestra determinista es sintético y se revisa por separado; valide tipos de campos, umbrales y definiciones comerciales con sus propios datos. Lea la metodología de prueba.

Resultado de la consulta

Espera máxima de bloqueo por operación bloqueada

Las actualizaciones de pedidos muestran esperas más largas, incidentes no resueltos y puntos muertos detectados.

database_nameblocked_query_fingerprintblocking_query_fingerprintlock_wait_incidentsaffected_transactionsaverage_wait_msmaximum_wait_msunresolved_incidentsdeadlocks
app_productionUPDATE orders SET status = ?SELECT order FOR UPDATE881600320022
analytics_productionREFRESH customer_summaryINSERT customer_event6650070000

Salida de ejemplo sintético. Ejecute la consulta con su propio esquema de eventos y umbrales antes de utilizarla para decisiones operativas.

Maximum lock wait by blocked operation: gráfico estático de valores sintéticos de maximum_wait_ms del resultado del ejemplo Find Database Lock Waits and Deadlocks
SVG indexable de la salida del ejemplo determinista. Descárguelo para ver un artículo, un runbook o una revisión de diseño con atribución.

Reproducir el ejemplo

Descargar el accesorio público

El paquete JSON incluye el contrato de evento escrito, reproducible filas de entrada, SQL exacto, resultado esperado, notas de revisión y versión del motor. El CSV contiene el resultado mostrado.

Cómo funciona el SQL

  1. 1Las huellas digitales bloqueadas y de bloqueo mantienen visible la relación de contención sin recopilar SQL parametrizado.
  2. 2El recuento de transacciones distintas protege el resultado de muestras repetidas de la misma espera.
  3. 3Los bloqueos y las incidencias no resueltas tienen prioridad sobre una espera media meramente elevada.

Casos extremos para decidir

  • El sondeo puede emitir varias observaciones para un incidente. Preservar un identificador de transacción o incidente.
  • Las vistas de bloqueo de bases de datos pueden exponer texto de declaraciones confidenciales; normalizarse en el momento de la recopilación antes de emitir un evento.
  • Las cerraduras de mantenimiento previsto deben tener una categoría de carga de trabajo aprobada para que puedan segmentarse.

Panel recomendado

  • Barras: maximum_wait_ms por blocked_query_fingerprint
  • Tabla: bloqueador y pares de huellas dactilares bloqueadas
  • Estadísticas: incidentes no resueltos y bloqueos

Guía de alerta

Página solo para interbloqueos o conflictos sostenidos no resueltos que afectan un flujo de trabajo visible para el usuario; contienda de mantenimiento de ruta por separado.

Leer configuración de alerta

Pon la receta a trabajar

Instrumentación y guías relacionadas.

Continuar el análisis

Ejecútelo en eventos reales.

Crea una tabla, adapta los campos y guarda el resultado.

Comience gratis, envíe eventos estructurados y utilice el resultado de la consulta como un gráfico, un widget de panel compartido o una entrada de alerta.

Obtén una clave API