Según un comentario sobre esta pregunta que pregunté sobre las conexiones inactivas en PostgreSQL 9.2 , algunas transacciones no confirmadas (posiblemente relacionadas con algunas de esas conexiones inactivas) pueden causar algunos problemas de rendimiento.
¿Cuál es una buena manera de determinar si hay transacciones no confirmadas (puntos de bonificación si hay una manera de saber si la conexión en la que están inactivas o no)?
¡Muchas gracias!
postgresql
database-design
performance
Juan Carlos Coto
fuente
fuente
pgtop
. También puede buscar filas que muestren "inactivo en la transacción" en la salida deps aux
.pgtop
ve interesante; ¿Hay un equivalente para Windows?Respuestas:
Si desea ver cuántas conexiones inactivas tiene que tienen una transacción abierta, puede usar:
Esto proporcionará una lista de conexiones abiertas que están en estado inactivo, que también tienen una transacción abierta.
Dicho esto, no puedo recrear una conexión abierta en el estado inactivo que tiene una transacción abierta. Quizás alguien más pueda proporcionar detalles sobre cómo hacerlo.
fuente
state
columna está presente solo en 9.2. Y para mí parece que el estado correcto es 'inactivo en la transacción'.state = 'idle'
no no indicar una transacción abierta.I cannot recreate an open connection in the idle state that has an open transaction.
Abra dos conexiones a la base de datos y escriba "comenzar"; en uno. En el otro, ejecute la consulta anterior y tendrá unidle in transaction
.