Küsimus
Anonüümne
(10.10.2023 11:58)
Kuidas katkestada PostgreSQLis SQL lause, mille täitmine võtab liiga kaua aega?
Vastus (10.10.2023 12:02):
Looge uus andmebaasi ühendus. Te võite ülikasutajana ühenduda ka mõne muu andmebaasi külge, kui see, milles töötab liiga kaua täidetav lause.
Leidke liiga kaua täidetava lause pid kasutades päringut:
SELECT
pid,
now() - pg_stat_activity.query_start AS duration,
query,
state
FROM pg_stat_activity
WHERE (now() - pg_stat_activity.query_start) > interval '5 minutes';
Päring leiab laused, mille täitmine on võtnud aega üle 5 minuti.Lõpetage lause täitmine, andes korralduse:
SELECT pg_cancel_backend(--pid--);
Näide:SELECT pg_cancel_backend(3847609);