Hoe stop/kill een query in postgresql?

Deze vraag is terwijl de postmaster uw zoekopdracht op de achtergrond uitvoert, hoe kunt u deze uitschakelen of stoppen?

Uw shell of een frontend kan bijvoorbeeld worden losgekoppeld vanwege een netwerkprobleem, u kunt ctrl-D niet gebruiken om het te doden, maar de postmaster op de achtergrond voert uw vraag nog steeds uit. Hoe het te doden?


Antwoord 1, autoriteit 100%

Wat ik deed, is eerst controleren wat de lopende processen zijn door

SELECT * FROM pg_stat_activity WHERE state = 'active';

Zoek het proces dat u wilt uitschakelen en typ vervolgens:

SELECT pg_cancel_backend(<pid of the process>)

Dit “start” in feite een verzoek om netjes te beëindigen, waaraan na enige tijd kan worden voldaan, hoewel de vraag onmiddellijk terugkomt.

Als het proces niet kan worden afgebroken, probeer dan:

SELECT pg_terminate_backend(<pid of the process>)

Other episodes