Cómo cambiar el tiempo máximo de ejecución de una consulta en PostgreSQL

Ejemplo de como cambiar el tiempo máximo de ejecución de una consulta o sentencia SQL en PostgreSQL, con el parametro statement_timeout.........
Publicado
Actualizado
Engagements 0 Comentario

Si deseamos limitar el tiempo máximo que puede durar ejecutando una consulta o sentencia SQL en PostgreSQL solo debemos cambiar el parámetro statement_timeout.

Configurando el timemout

Este se cambia ejecutando en tu conexión el siguiente comando:

set statement_timeout = '60 s'; -- 60 segundos

En el anterior ejemplo vemos cómo configurar un tiempo máximo de 1 minuto (60 Segundos), si ejecutamos una sentencia SQL que tarde más de 1 minuto en terminar obtendremos el siguiente error: 

ERROR – canceling statement due to statement timeout

El cual nos indica que fue cancelado por que tardo más del valor configurado previamente.

Otros ejemplos de configuración

set statement_timeout = '10000'; --- 10 segundos (valor en milisegundos)
        
        set statement_timeout = '5000'; --- 5 segundos (valor en milisegundos)
        
        set statement_timeout = '5 s'; --- 5 segundos 
        
        set statement_timeout = '15 s'; --- 15 segundos 
        
        set statement_timeout = '60 s'; --- 60 segundos 
        
        set statement_timeout = '120 s'; --- 2 minutos 
        
        set statement_timeout = '2 min'; --- 2 minutos 
        
        set statement_timeout = '5 min'; --- 5 minutos 
        
        set statement_timeout = '1 h'; --- 1 Hora
        
        set statement_timeout = '2 h'; --- 2 Horas

¿Cómo podemos probar el cambio?

Digamos que tenemos configurado el valor en 15 segundos, entonces usamos la función pg_sleep(SEGUNDOS)  

SELECT pg_sleep(16);

Si ejecutamos la sentencia nos retorna después de "X SEGUNDOS" el error antes mencionado. 

Comentarios