Type: integer
Défaut: 0 (0ms)
Min: 0 (0ms)
Max: 2147483647 (2147483647ms)
Unité: milliseconds (ms)
Contexte: user
Redémarrer: false

Interrompt toute instruction qui dure plus longtemps que cette durée. Si log_min_error_statement est configuré à ERROR, ou plus bas, l'instruction en cause est tracée. Si cette valeur est indiquée sans unité, elle est comprise comme un nombre de millisecondes. La valeur zéro (par défaut) désactive le décompte.

Le délai est mesuré à partir du moment où une commande arrive au serveur jusqu'à sa fin par le serveur. If multiple SQL statements appear in a single simple-Query message, the timeout is applied to each statement separately. (PostgreSQL versions before 13 usually treated the timeout as applying to the whole query string.) Dans le protocole de requête étendue, le délai commence lors du début de l'exécution de tout message relatif à la requête (Parse, Bind, Execute, Describe) et elle est annulée à la fin du message Execute ou Sync.

Il n'est pas recommandé de configurer statement_timeout dans postgresql.conf car cela affecte toutes les sessions.

Recommandations [EN]

Defaults to 0, meaning no timeout. For most web applications, it's a good idea to set a default timeout, such as 60s to prevent runaway queries from bogging the server. If set, though, you need to remember to set (at the ROLE or session level) a higher statement_timeout for expected long-running maintenance or batch operations.

Commentaires