Meu tempo de planejamento de consultas no Amazon Redshift é maior que o tempo de execução e não sei qual é o motivo.
Breve descrição
Consultas com bloqueios exclusivos em uma carga de produção podem aumentar o tempo de espera do bloqueio. Esse aumento faz com que seu tempo de planejamento de consultas no Amazon Redshift seja muito maior que o tempo real de execução. Verifique a métrica Detalhamento da execução da workload para ver se há um aumento repentino no tempo de planejamento de consultas. Uma transação que está aguardando um bloqueio provavelmente causou o aumento no tempo.
Resolução
Para detectar uma transação que está aguardando um bloqueio, conclua as seguintes etapas:
-
Abra uma nova sessão para seu primeiro bloqueio:
begin; lock table1;
-
Abra uma segunda sessão que seja executada em paralelo e, em seguida, execute a seguinte consulta:
select * from table1 limit 1000;
A consulta nessa segunda sessão envia uma solicitação AccessSharedLock. Como a primeira sessão já reivindicou AccessExclusiveLock, essa segunda consulta deve esperar para acessar o bloqueio. Em seguida, ExclusiveLock bloqueia todas as outras operações em table1.
-
Verifique suas métricas Detalhamento da execução da workload. Um aumento repentino no tempo de planejamento de consultas pode confirmar que há uma transação aguardando um bloqueio.
-
(Opcional) Se existir uma transação aguardando um bloqueio, encerre manualmente a sessão para liberar o bloqueio:
select pg_terminate_backend(PID);
Para obter mais informações sobre a liberação de bloqueios, consulte Como detectar e liberar bloqueios no Amazon Redshift?
Informações relacionadas
Analisar o desempenho da workload
Planejamento de consulta e fluxo de trabalho de execução