Nesta página, descrevemos os principais componentes do visualizador do plano de consulta.
O visualizador de planos de consulta no console do Google Cloud ajuda a entender a estrutura do plano de execução que o Spanner escolhe para avaliar uma consulta.
O visualizador mostra o plano como um gráfico visual, facilitando a análise de como o Spanner executa suas consultas e a identificação de possíveis gargalos de desempenho. É possível usar o visualizador do plano de consulta para fazer o seguinte:
- Depurar consultas lentas: identifique qual parte do plano de consulta leva mais tempo ou recursos.
- Validar otimizações: compare os planos de consulta antes e depois de fazer mudanças (como adicionar um índice ou reescrever uma mesclagem) para verificar as melhorias.
- Entender o comportamento das consultas: saiba como o Spanner processa instruções SQL complexas, incluindo mesclagens, agregações e operações distribuídas.
Benefícios de usar o visualizador de planos de consulta
Os planos de consulta podem ser complexos. O visualizador simplifica a análise de planos com os seguintes recursos:
- Representação gráfica: mostra o fluxo de dados de tabelas e índices por vários operadores até o resultado final.
- Insights de desempenho: identifica operadores caros com dicas visuais para alta latência e consumo de CPU.
- Visualização da contagem de linhas: mostra o volume de dados em cada etapa com indicadores de espessura de linha.
- Estatísticas detalhadas: fornece estatísticas de ambiente de execução específicas para cada operador.
Acessar o visualizador de planos de consulta
É possível acessar o visualizador do plano de consulta no console do Google Cloud usando um dos seguintes métodos:
- Spanner Studio: gere um plano de consulta em tempo real e sob demanda ao escrever e testar consultas.
- Query Insights: confira planos de consulta históricos e de amostra capturados de cargas de trabalho de produção ao longo do tempo.
Ver um plano on demand no Spanner Studio
Para conferir um plano de consulta sob demanda para uma consulta no Spanner Studio:
No console do Google Cloud , acesse a página Instâncias do Spanner.
Clique no nome da instância que contém o banco de dados que você quer consultar.
Na lista Bancos de dados, clique no nome do seu banco de dados.
No menu de navegação, clique em Spanner Studio.
No painel do editor, insira sua consulta SQL.
Clique em Executar.
Clique na guia Explicação.
Ver um plano de amostra no Query Insights
Para ver um plano de consulta histórico e de amostra no Query Insights:
No console do Google Cloud , acesse a página Instâncias do Spanner.
Clique no nome da instância que contém o banco de dados que você quer investigar.
No menu de navegação, clique em Query Insights.
Selecione o banco de dados e o período que você quer analisar.
Na tabela Consultas TopN, clique na consulta ou tag de solicitação que você quer inspecionar.
No gráfico Amostras de planos de consulta, clique em um ponto de amostra que representa uma execução de consulta.
Na seção Visualizador do plano de consulta, confira o plano de execução visual.
Navegar no visualizador
O visualizador mostra o plano de consulta como um gráfico acíclico dirigido (DAG).

A visualização do plano de consulta pode ser grande, dependendo da consulta executada. Para ocultar ou mostrar detalhes, clique no seletor de visualização Expandida/Compacta. Para aumentar ou diminuir o zoom, use o controle de zoom.
A interface do visualizador oferece os seguintes painéis de informações:
Para fazer o download do plano de consulta visualizado, clique em Fazer o download do JSON. Para ver o plano de consulta mais tarde, importe o perfil JSON salvo de volta para o Spanner Studio. Se você precisar resolver problemas de desempenho, compartilhe o arquivo JSON com a equipe de suporte do Spanner.
Gráfico acíclico do plano de consulta
A lógica que o Spanner usa para executar a consulta aparece como um DAG. O gráfico mostra o fluxo de dados de baixo para cima. As tabelas e os índices aparecem na parte de baixo, e a saída final da consulta aparece na parte de cima.
Cada nó no gráfico é representado por um card. Cada card representa um iterador que consome linhas das entradas e produz linhas para o pai.
As linhas que conectam os cards representam o fluxo de linhas entre os iteradores. A espessura da linha indica o número relativo de linhas transmitidas. Linhas mais grossas indicam mais linhas.
Cada card no gráfico contém as seguintes informações:
- Nome do iterador: o nome do iterador.
- Estatísticas de ambiente de execução: o número de linhas retornadas, a latência e o uso da CPU.
Clique em um card para ver mais informações sobre a latência, o uso da CPU, as linhas retornadas, a contagem de execuções e a contagem de grupos de máquinas.
Para mais informações sobre operadores, consulte Operadores de execução de consulta.
As consultas do Spanner geralmente recuperam dados de várias divisões de banco de dados. Um grupo de máquinas representa um conjunto de operadores de execução de consulta contíguos que são executados juntos para um conjunto de divisões. Em um único grupo de máquinas, os operadores são executados sequencialmente de baixo para cima, enquanto diferentes grupos de máquinas são executados em paralelo. Quando os dados se movem entre divisões nos limites do grupo de máquinas, eles viajam por chamadas de procedimento remoto (RPCs).
Para mais informações sobre divisões, consulte Divisões de banco de dados.
O visualizador ajuda a distinguir entre distribuição lógica e física:
- Limites lógicos: os cards rotulados como Distribuído indicam onde o planejador de consultas dividiu a lógica da consulta.
- Distribuição física: as cores do grupo de máquinas no gráfico representam a execução física real derivada das estatísticas de ambiente de execução.
Os limites físicos geralmente se alinham com os operadores lógicos distribuídos, mas podem ser diferentes dependendo de como as divisões são colocadas nos servidores.
Resumo da consulta
O painel Resumo da consulta fornece as seguintes métricas de execução de alto nível e destaca possíveis gargalos na consulta:
- Tempo total decorrido: o tempo total necessário para executar a consulta do início ao fim.
- Tempo de CPU: o tempo de CPU cumulativo consumido em todas as linhas de execução e servidores que processam a consulta.
- Tempo de criação do plano: o tempo que o compilador e o otimizador de consultas gastaram para gerar o plano de execução.
- Atraso na fila do servidor: o tempo que a consulta passou aguardando nas filas do servidor antes do início do processamento.
- Linhas retornadas: o número total de linhas retornadas no resultado final da consulta.
- Linhas verificadas: o número total de linhas lidas do armazenamento em todas as tabelas e índices verificados.
- Chamadas remotas: o número total de RPCs feitas entre divisões ou grupos de máquinas.
- Versão do otimizador de consultas: a versão do otimizador de consultas do Spanner usada para compilar o plano.
- Pacote de estatísticas: o pacote de estatísticas do otimizador usado para otimização baseada em custos.
Operadores de destaque
A seção Operadores em destaque destaca os iteradores que consomem mais recursos no plano de consulta:
- Maior latência: o operador com a maior duração de execução.
- Tempo de CPU mais alto: o operador que consumiu mais tempo de CPU.
- Contagem de linhas mais alta: o operador que processou ou retornou o maior número de linhas.
Linha do tempo de execução da consulta
A guia Linha do tempo de execução da consulta exibe um gráfico baseado em tempo que mostra quanto tempo cada grupo de máquinas leva para executar a parte dele da consulta. Um grupo de máquinas pode não ser executado durante toda a consulta ou pode ser executado várias vezes. No entanto, a linha do tempo mostra apenas o horário de início da execução inicial e o horário de término da execução final.
Indicadores visuais de desempenho
O visualizador usa as seguintes cores e ícones para ajudar você a identificar problemas:
- Barras vermelhas: indicam a porcentagem de latência ou tempo de CPU consumido por esse operador em relação à consulta total.
- Triângulos de aviso: indicam que ocorreu uma verificação completa da tabela. Essas verificações geralmente sugerem uma oportunidade de otimizar a consulta, por exemplo, adicionando um índice secundário.
- Cores do grupo de máquinas: diferenciam os grupos de máquinas e destacam as transições entre eles. Essas transições exigem execução remota em máquinas diferentes, o que gera sobrecarga de serialização e de rede. A linha do tempo de execução da consulta também exibe essas cores de grupo de máquinas.
A seguir
- Saiba como ajustar uma consulta usando o visualizador de planos de consulta.
- Leia sobre operadores de execução de consulta específicos.
- Entenda os planos de execução de consulta em detalhes.