Andmebaasid II (ITI0207) (sügis 2023)

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);

Hinda vastust:

Keskmine hinne: Pole veel hinnanguid!