2010-07-12 37 views
14

¿Hay alguna manera a través de una consulta de MySQL para obtener las tablas bloqueadas? Tengo una aplicación de subprocesamiento C# ejecutándose y hay muchas tablas bloqueadas en la aplicación.Obtener tablas bloqueadas en la consulta de mysql

Necesito ver las tablas bloqueadas y analizar el código que podría bloquearlo.

Respuesta

44

Uso:

SHOW OPEN TABLES 

Una comprobación de si la columna In_use es mayor que 0. En ese caso, la tabla está bloqueada.

Ejemplos

  • Lista de tablas bloqueadas:

    show open tables WHERE In_use > 0

  • Comprobar si la tabla tb_employees está bloqueado o no:

    show open tables WHERE Table LIKE 'tb_employees' AND In_use > 0

Desde el official documentation:

In_use

el número de bloqueos de tabla o bloqueo peticiones existen para la tabla. Por ejemplo, si un cliente adquiere un bloqueo para una tabla utilizando LOCK TABLE t1 WRITE, IN_USE será 1. Si otro ESCRITURA problemas del cliente LOCK TABLE t1 mientras que la mesa permanece bloqueado, el cliente bloqueará la espera de la bloqueo, pero la solicitud de bloqueo hace que En_uso sea 2. Si el recuento es cero, la tabla está abierta, pero no está siendo utilizada actualmente . In_use también se incrementó por la instrucción HANDLER ... OPEN y disminuyó por HANDLER ... CERRAR.

+0

Gracias cristian, se ve perfecto. – Sharpeye500

Cuestiones relacionadas