On 6/01/2019 12:01 PM, Daymel Bonne wrote:
Hola:

El sáb., 5 de ene. de 2019 a la(s) 17:43, Carlos T. Groero Carmona (cton...@gmail.com <mailto:cton...@gmail.com>) escribió:

        Alvaro escribio:


        Como tienes lock_timeout, tu problema seguramente no fue de
        locks sino
        de lentitud.


    Por lo que me surge la duda, todo parece indicar que la
    transaction se inicia con el update pero por algun problema de
    lentitud se queda esperando una respuesta, durante ese tiempo la
    tabla o la tupla esta lock...

    Mi lock_timeout es de 10 segundos, por lo tanto despues de 10
    segundo esa transacion, sera eliminada?

    Si se elimina entonces no se recibe ni el commit ni el rollback,
    por lo tanto cualquier otra transaction que se vaya a ejecutar en
    esa tabla sera detenida esperando que la transaction anterior se
    complete ya se por un commit o un rollbacks...


No toda transacción sobre la tabla será bloqueada. Sólo las que necesiten del registro que se está actualizando. En tu caso, los updates sobre el mismo registro serán encolados.
Hola, no estoy seguro de esto, solo si el registro que estas actualizando tienen un indice el registro es bloqueado, si estas actualizando algo que no tiene indices ( por lo menos en Oracle ) bloquea la tabla, ignoro si en postgresql se comporta de esta forma.  ( Sí en Oracle es horrible el tema ).

Saludos

--
Daymel Bonne
Database Consultant, Training & Services
2ndQuadrant - PostgreSQL Solutions for the Enterprise
https://www.2ndQuadrant.com/ <https://www.2ndquadrant.com/>

Reply via email to