Essa combinação aponta para esgotamento do pool de conexões ou um limite de concorrência parecido, não para o banco estar lento. Olhe o tempo de espera no pool e as conexões ativas versus ociosas: as requisições estão na fila por uma conexão enquanto cada uma que a segura demora demais, muitas vezes por causa de uma chamada externa lenta dentro de uma transação, um timeout faltando ou uma conexão vazada que nunca volta. Corrija primeiro o tempo de retenção, depois dimensione o pool de forma deliberada.
Por que os entrevistadores perguntam isso
É um incidente realista em que a métrica óbvia parece saudável, então testa se você raciocina sobre o caminho inteiro da requisição. O entrevistador quer ouvir sobre fila por um recurso, o perigo de fazer chamadas de rede dentro de uma transação e por que um pool maior costuma ser a correção errada. Saber que o tamanho do pool deve se relacionar à capacidade do banco e não à contagem de instâncias mostra experiência operacional real.
Como estruturar sua resposta
- Reformule o sintoma como espera por um recurso, não como query lenta.
- Cite as métricas que confirmam: tempo de espera no pool, conexões ativas, saturação.
- Liste as causas comuns de retenção longa de conexão.
- Explique como você dimensiona o pool e o que acontece se você só aumentá-lo.
Exemplo de resposta
Queries rápidas mais requisições lentas significa que o tempo está sendo gasto esperando por algo, e o pool é o suspeito de sempre. Eu olharia o tempo de espera no pool e quanto tempo as conexões ficam retidas, mais a contagem do lado do banco de sessões ativas versus ociosas em transação. Um monte de idle in transaction é o sinal claro: alguém abriu uma transação e depois fez um trabalho que não é de banco. Isso é quase sempre a causa, uma chamada HTTP para um provedor de pagamento ou uma serialização lenta dentro de uma transação, então cada requisição segura uma conexão por um segundo em vez de cinco milissegundos e o pool esvazia com uma fração do tráfego. A correção é encurtar a seção crítica: fazer a chamada externa antes ou depois da transação, adicionar timeouts de statement e de transação, e garantir que todo caminho devolva a conexão mesmo em caso de erro. Só depois disso eu mexeria no tamanho, e com cuidado, porque cada instância multiplica aquilo. Aumentar o pool sem corrigir o tempo de retenção só move a fila para o banco e transforma um endpoint lento numa queda geral.
Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.
Veja como funcionaPerguntas de acompanhamento que você pode esperar
- Como você decidiria o tamanho certo de pool para dez instâncias da aplicação?
- O que idle in transaction indica, e como você pega isso cedo?
- Onde um proxy de conexões ajuda, e o que ele não resolve?
Mais perguntas para Desenvolvedor Backend
Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.
Prever minhas perguntas