1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-03 07:08:01 +00:00

Add Prevent A Query From Running Too Long as a postgres til

This commit is contained in:
jbranchaud
2019-11-23 17:53:20 -06:00
parent 61bdfbfc63
commit 947e936cbf
2 changed files with 30 additions and 1 deletions

View File

@@ -9,7 +9,7 @@ and pairing with smart people at Hashrocket.
For a steady stream of TILs, [sign up for my newsletter](https://tinyletter.com/jbranchaud).
_874 TILs and counting..._
_875 TILs and counting..._
---
@@ -459,6 +459,7 @@ _874 TILs and counting..._
- [Prepare, Execute, And Deallocate Statements](postgres/prepare-execute-and-deallocate-statements.md)
- [Pretty Print Data Sizes](postgres/pretty-print-data-sizes.md)
- [Pretty Printing JSONB Rows](postgres/pretty-printing-jsonb-rows.md)
- [Prevent A Query From Running Too Long](postgres/prevent-a-query-from-running-too-long.md)
- [Print The Query Buffer In psql](postgres/print-the-query-buffer-in-psql.md)
- [Renaming A Sequence](postgres/renaming-a-sequence.md)
- [Renaming A Table](postgres/renaming-a-table.md)

View File

@@ -0,0 +1,28 @@
# Prevent A Query From Running Too Long
A number of different factors can effect how long a query takes to run.
Certainly the size of a table and the complexity of the query play a big role.
Locking can really slow a query down by making it wait to get started. A series
of competing queries that induce table locking can grind things to a halt.
If you don't want queries in a particular connection being allowed to wait or
run too long, you can set a timeout.
```sql
set statement_timeout to '500';
```
That will ensure that any statement run in that connection will be terminated
if it takes longer than 500ms.
You can also specify a unit:
```sql
set statement_timeout to '15s';
```
That will enforce statement timeout of 15 seconds.
See the
[docs](https://www.postgresql.org/docs/current/runtime-config-client.html) for
more details.