PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Maneira mais rápida de executar uma consulta de exclusão em uma tabela grande no PostgreSQL


Se esta consulta estiver demorando muito:
delete from PlanItems p where p.jobId = :jobid

e você tem um índice em PlanItmes(jobId) -- onde jobId é a primeira coluna no índice -- então você precisa considerar outras questões.

  1. Existem restrições de chave estrangeira em cascata que usam jobId ? Nesse caso, as cascatas podem afetar essas tabelas - e se forem exclusões em cascata, a exclusão dessas linhas pode afetar mais tabelas.

  2. Existe um gatilho de exclusão na tabela? Nesse caso, suas exclusões "simples" podem estar fazendo muito mais trabalho do que você imagina.

  3. Existe uma carga pesada no sistema? Nesse caso, o tempo pode simplesmente estar aguardando uma oportunidade para excluir as linhas.

  4. As visualizações materializadas são construídas na tabela? Se sim, eles podem estar sendo atualizados.

Se nenhum desses for o caso, pode ser um problema em como você está medindo o tempo decorrido.