PG_TERMINATE_BACKEND
Encerra uma sessão. Você pode encerrar uma sessão de propriedade de seu usuário. Um superusuário pode encerrar qualquer sessão.
Sintaxe
pg_terminate_backend( pid )
Argumentos
- pid
-
O ID de processo da sessão a ser encerrada. Requer um valor
INTEGER
.
Tipo de retorno
Nenhum
Observações de uso
Se você estiver próximos de alcançar o limite de conexões simultâneas, use PG_TERMINATE_BACKEND para encerrar sessões ociosas e liberar as conexões. Para obter mais informações, consulte Limites no Amazon Redshift.
Se consultas em várias sessões têm bloqueios na mesma tabela, você pode usar a função PG_TERMINATE_BACKEND para encerrar uma das sessões, o que força todas as transações atualmente em execução na sessão encerrada a liberar todos os bloqueios e reverter a transação. Consulte a tabela de catálogo PG_LOCKS para visualizar os bloqueios atuais.
Se uma consulta não estiver em um bloco de transação (BEGIN… END), você pode cancelar a consulta usando o comando CANCEL ou a função PG_CANCEL_BACKEND.
Exemplos
Para consultar a tabela SVV_TRANSACTIONS a fim de visualizar todos os bloqueios em vigor para transações atuais, use o exemplo a seguir..
SELECT * FROM svv_transactions;
+-----------+--------+-------+------+---------------------+-----------------+----------------------+----------+---------+ | txn_owner | txn_db | xid | pid | txn_start | lock_mode | lockable_object_type | relation | granted | +-----------+--------+-------+------+---------------------+-----------------+----------------------+----------+---------+ | rsuser | dev | 96178 | 8585 | 2017-04-12 20:13:07 | AccessShareLock | relation | 51940 | true | | rsuser | dev | 96178 | 8585 | 2017-04-12 20:13:07 | AccessShareLock | relation | 52000 | true | | rsuser | dev | 96178 | 8585 | 2017-04-12 20:13:07 | AccessShareLock | relation | 108623 | true | | rsuser | dev | 96178 | 8585 | 2017-04-12 20:13:07 | ExclusiveLock | transactionid | | true | +-----------+--------+-------+------+---------------------+-----------------+----------------------+----------+---------+
Para encerrar a sessão com os bloqueios, use o exemplo a seguir.
SELECT PG_TERMINATE_BACKEND(8585);