Query Profiler
Este documento descreve o Query Profiler, uma ferramenta gráfica para analisar os componentes e o desempenho de uma consulta.
O Query Profiler é um recurso de monitoramento e solução de problemas de consultas que pode ser visualizado por meio do console do Amazon Redshift. Ele é útil para analisar o desempenho da consulta. Seu objetivo principal é mostrar uma ordem de execução visual e gráfica, um plano de execução e estatísticas sobre uma consulta, facilitando a compreensão e a solução de problemas. O Query Profiler ajuda você a analisar os seguintes tipos de componentes de consulta:
Consultas secundárias: uma consulta secundária é uma parte do trabalho de uma consulta. O Amazon Redshift pode dividir uma consulta em várias consultas secundárias se isso for mais eficiente do que processá-la como uma consulta grande e única. No profiler, você pode ver as propriedades de cada consulta secundária. Uma consulta secundária é composta por fluxos e subcomponentes adicionais.
Os tipos de consulta secundária que o Query Profiler mostra geralmente incluem o seguinte:
Consulta de tabela temporária: o texto dessa consulta secundária começa com o comando
CREATE TEMP TABLE
. Essa consulta secundária cria tabelas temporárias para processamento de outras consultas secundárias.Consulta de estatísticas: o Query Profiler adiciona o seguinte comentário ao início dessa consulta secundária para ajudar a identificá-la:
-- collect statistics of child query
queryID
Esta consulta secundária coleta informações que o mecanismo de consulta do Amazon Redshift usa para otimizar o desempenho.
nota
O Query Profiler mostra a consulta que o usuário fornece como a última consulta secundária executada pelo Amazon Redshift.
Fluxos: um fluxo é uma coleção de segmentos agrupados em fatias de nós de computação disponíveis. Toda consulta secundária é composta por um ou mais segmentos. No Query Profiler, você pode ver as propriedades de cada fluxo, como seu tempo de execução. Ao examinar a lista de fluxos, é provável que você encontre rapidamente gargalos de desempenho.
Segmentos: um segmento é uma combinação de várias etapas que um único processo pode executar. Um segmento também é a menor unidade de compilação executável por uma fatia de nó de computação. Uma fatia é a unidade de processamento paralelo no Amazon Redshift. Os segmentos em um fluxo são executados em paralelo. O Query Profiler não mostra segmentos graficamente, mas você pode acessar as informações do segmento de uma etapa no painel de detalhes dessa etapa.
Etapas: cada segmento é composto por uma coleção de etapas. Uma etapa é uma parte do trabalho em uma consulta. As etapas podem incluir um hashjoin, por exemplo, ou uma verificação, que é a leitura de registros de uma tabela.
Para obter mais informações sobre fluxos, segmentos e etapas, consulte Planejamento de consulta e fluxo de trabalho de execução no Guia do desenvolvedor de banco de dados do Amazon Redshift.
O criador de perfil de consultas exibe informações retornadas pelas visualizações SYS_QUERY_HISTORY
, SYS_QUERY_DETAIL
, SYS_QUERY_EXPLAIN
e SYS_CHILD_QUERY_TEXT
. Para obter mais informações sobre essas visualizações, consulte SYS_QUERY_HISTORY, SYS_QUERY_DETAIL, SYS_QUERY_EXPLAIN e SYS_CHILD_QUERY_TEXT no Guia do desenvolvedor de banco de dados do Amazon Redshift.
O Query Profiler exibe somente informações de consultas que foram executadas recentemente no banco de dados. Uma consulta concluída usando dados de cache pré-preenchidos em vez de ser executada no banco de dados não terá um perfil de consulta se as informações não estavam disponíveis anteriormente para ela. Isso ocorre porque o Amazon Redshift não gera um plano de consulta para ela.
Pré-requisitos para usar o Criador de perfil de consultas
As visualizações de monitoramento de SYS foram projetadas para serem fáceis de usar e diminuir a complexidade, fornecendo um conjunto completo de métricas para contribuir para a eficácia de monitoramento e solução de problemas. As visualizações de monitoramento SYS também garantem o histórico de consultas dos últimos sete dias, independentemente do tamanho ou da atividade do cluster. Os usuários só têm visibilidade para as consultas que eles executaram, enquanto os superusuários têm visibilidade para as consultas de todos os usuários.
A conta ou o perfil do usuário do IAM precisa de permissões para acessar a seção Monitoramento de consultas e bancos de dados do console. Esta seção descreve como adicionar permissões a uma conta ou um perfil de usuário.
Use a seguinte política para adicionar permissões mínimas à conta ou ao perfil do usuário do IAM:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"redshift:DescribeClusters",
"redshift-serverless:ListNamespaces",
"redshift-serverless:ListWorkgroups",
"redshift-data:ExecuteStatement",
"redshift-data:DescribeStatement",
"redshift-data:GetStatementResult"
],
"Resource": [
"arn:aws:redshift-serverless:<your-namespace>",
"arn:aws:redshift-serverless:<your-workgroupname>",
"arn:aws:redshift:<your-clustername>"
]
}
]
}
Tópicos
Conceder permissões de monitoramento de consultas a um perfil
Os usuários com um perfil que tenha a permissão sys:monitor
conseguem visualizar todas as consultas. Os usuários com um perfil que tenha a permissão sys:operator
podem cancelar consultas, analisar o histórico de consultas e executar operações vacuum.
Para conceder permissão de monitoramento de consultas a uma função
Insira o comando a seguir para fornecer acesso ao monitor do sistema, em que
role-name
é o nome do perfil ao qual você deseja oferecer acesso.grant role sys:monitor to "IAMR:
role-name
";(Opcional) Insira o comando a seguir para fornecer acesso de operador do sistema, em que
role-name
é o nome do perfil ao qual você deseja oferecer acesso.grant role sys:operator to "IAMR:
role-name
";
Conceder permissões de monitoramento de consultas a um usuário
Os usuários com a permissão sys:monitor
podem visualizar todas as consultas. Os usuários com permissão sys:operator
podem cancelar consultas, analisar o histórico de consultas e executar operações vacuum.
Para conceder permissão de monitoramento de consultas a um usuário
Insira o comando a seguir para fornecer acesso ao monitor do sistema, em que
user-name
é o nome do usuário ao qual você deseja oferecer acesso.grant role sys:monitor to "IAMR:
user-name
";(Opcional) Insira o comando a seguir para fornecer acesso de operador do sistema, em que
-name
é o nome do usuário ao qual você deseja oferecer acesso.grant role sys:operator to "IAMR:
user-name
";
Credenciais temporárias usando sua identidade do IAM
Essa opção só está disponível ao se conectar a um cluster. Com esse método, o Criador de perfil de consultas associa um nome de usuário à identidade do IAM e gera uma senha temporária para estabelecer conexão com o banco de dados como sua identidade do IAM. Um usuário que usa esse método para se conectar deve ter permissão do IAM para redshift:GetClusterCredentialsWithIAM
. Para impedir que os usuários usem esse método, modifique o perfil ou usuário do IAM para negar essa permissão.
Acessar o Query Profiler no console do Amazon Redshift para analisar uma consulta
Você pode acessar o Query Profiler tanto para o Amazon Redshift sem servidor quanto para o Amazon Redshift provisionado. Para detalhes, consulte estas seções:
Tópicos
Acessar o Query Profiler no console do Amazon Redshift para o Amazon Redshift sem servidor
Para acessar o Query Profiler para o Amazon Redshift sem servidor, faça o seguinte:
Abra o console do Amazon Redshift sem servidor.
No painel de navegação, em Monitoramento, escolha Monitoramento de consultas e bancos de dados.
Escolha um grupo de trabalho.
Escolha Monitoramento de consultas e bancos de dados.
Escolha uma consulta.
Escolha a guia Plano de consulta na página Detalhes da consulta.
Se um plano de consulta estiver disponível, você verá uma lista de consultas secundárias. Escolha uma consulta para visualizá-la no Query Profiler.
Acessar o Query Profiler no console do Amazon Redshift para o Amazon Redshift provisionado
Para acessar o Query Profiler para o Amazon Redshift provisionado, faça o seguinte:
Abra o painel de clusters do Amazon Redshift provisionado.
Selecione um cluster.
Escolha Query monitoring (Monitoramento de consultas).
Conectar a um banco de dados
Escolha Monitoramento de consultas e bancos de dados.
Escolha uma consulta.
Se um plano de consulta estiver disponível, você verá uma lista de consultas secundárias. Escolha uma consulta para visualizá-la no Query Profiler.
Interface do usuário do Query Profiler
O Query Profiler usa as seguintes páginas para exibir informações sobre sua consulta:
Página de detalhes da consulta: esta página exibe estatísticas e consultas secundárias para sua consulta.
Página Consulta secundária: esta página exibe estatísticas, fluxos e uma representação visual do plano de execução de uma consulta secundária. O console exibe essa página quando você escolhe uma consulta secundária na lista Consultas secundárias na página Monitoramento de consultas e bancos de dados.
Página de detalhes da consulta

A página Detalhes da consulta tem os seguintes componentes:
Painel superior: o painel na parte superior da página mostra detalhes sobre a consulta, como status e tipo. Para obter informações sobre a origem das informações que o painel superior mostra, consulte SYS_QUERY_HISTORY no Guia do desenvolvedor de banco de dados do Amazon Redshift.
Guia SQL: essa guia do painel inferior mostra o texto SQL da consulta original do usuário.
Guia Plano de consulta: essa guia do painel inferior mostra uma lista das consultas secundárias que o Amazon Redshift usa para preparar dados e estatísticas para a consulta do usuário. Por padrão, a lista Consultas secundárias mostra informações e estatísticas agregadas sobre cada consulta secundária. Para obter informações sobre a origem das informações que esta página mostra, consulte SYS_QUERY_DETAIL no Guia do desenvolvedor de banco de dados do Amazon Redshift.
Você pode adicionar ou remover colunas da lista Consultas secundárias usando o menu Preferências.
Métricas relacionadas: essa guia do painel inferior mostra as seguintes métricas do CloudWatch para a consulta:
Capacidade de RPU usada (para grupos de trabalho sem servidor): a capacidade computacional usada pela consulta, medida em unidades de processamento do Redshift (RPU). Para obter mais informações, consulte Capacidade computacional do Amazon Redshift Serverless.
Status de integridade do cluster, Utilização da CPU, Capacidade de armazenamento usada (para clusters provisionados): o status e os recursos do sistema usados pela consulta.
Conexões ativas do banco de dados: a métrica
DatabaseConnections
da consulta.
Para ter mais informações sobre métricas do CloudWatch, consulte Dados de performance no Amazon Redshift.
Página Consulta secundária

A página Consulta secundária tem os seguintes componentes:
Lista suspensa Consultas secundárias: esse controle mostra o nome da sequência e o tempo de execução de cada consulta secundária. Você pode navegar até outras consultas secundárias selecionando-as nesse controle.
Painel lateral: esse painel contém guias para exibir os fluxos de consulta secundários e o texto da consulta secundária.
Guia de fluxos de consulta secundários: essa guia do painel superior exibe o seguinte:
Fluxos: esse painel mostra a lista de fluxos na consulta secundária. Esse painel mostra informações e dados agregados sobre os fluxos que o Amazon Redshift usa para otimizar a consulta. Para obter informações sobre os detalhes desse painel, consulte SYS_QUERY_DETAIL no Guia do desenvolvedor de banco de dados do Amazon Redshift.
Você pode adicionar ou remover colunas do painel Fluxos usando o menu Preferências. Você pode acessar o menu Preferências usando o ícone de engrenagem no painel Fluxos.
Painel Consulta secundária: uma representação gráfica das etapas na consulta secundária. Para obter informações sobre o painel Consulta secundária, consulte Painel Consulta secundária a seguir.
Guia de texto da consulta secundária: essa guia do painel superior mostra o código SQL da consulta secundária.
Painel Detalhes da consulta secundária: esse painel à direita mostra detalhes sobre a consulta secundária. Para obter informações sobre os detalhes desse painel, consulte SYS_QUERY_DETAIL no Guia do desenvolvedor de banco de dados do Amazon Redshift.
Painel Detalhes do fluxo: quando você escolhe um fluxo no painel Fluxos, o painel Detalhes do fluxo mostra as informações pertinentes. Para obter informações sobre os detalhes desse painel, consulte SYS_QUERY_DETAIL no Guia do desenvolvedor de banco de dados do Amazon Redshift.
Painel Detalhes da etapa: quando você escolhe uma etapa no painel Fluxos ou no gráfico no plano Consulta secundária, o painel Detalhes da etapa mostra informações sobre a etapa. Para obter informações sobre os detalhes nesse painel, consulte SYS_QUERY_DETAIL no Guia do desenvolvedor de banco de dados do Amazon Redshift.
Painel Consulta secundária
O Query Profiler exibe a consulta secundária no painel Consulta secundária como uma representação gráfica das etapas na consulta secundária selecionada.
O painel Consulta secundária exibe a ordem de execução e as relações entre as etapas. Por exemplo, se uma etapa unir a saída de duas outras etapas, o painel Consulta secundária mostrará a etapa como um nó de árvore com dois nós convergendo para ela:

O painel Consulta secundária não mostra os fluxos que contêm as etapas por padrão. Para mostrar os fluxos que o Amazon Redshift usa para particionar logicamente as etapas na consulta secundária, escolha Exibir fluxos. Quando você escolhe Exibir fluxos, o painel Consulta secundária mostra as etapas contidas nos fluxos da consulta.
O painel Consulta secundária não mostra informações de segmento. Para ver o segmento de uma etapa, escolha a etapa. Em seguida, o painel Detalhes da etapa mostra o segmento da etapa.
Navegação no painel Consulta secundária
No painel Consulta secundária, você pode escolher etapas para ver informações detalhadas sobre elas. Você também pode aplicar panorâmica e zoom no espaço de trabalho para visualizar melhor as etapas em seu plano de consulta.
Você pode escolher nós, panorâmica e zoom no plano Consulta secundária usando os seguintes métodos:
Uso do mouse: você pode escolher nós, clicar e arrastar o espaço de trabalho para aplicar panorâmica e segurar
Ctrl
(Windows) ouCMD
(Mac) e girar a roda do mouse para ampliar. A escolha de um nó aplica panorâmica e zoom no espaço de trabalho para destacar esse nó. Se você escolher um fluxo no espaço de trabalho, esse fluxo será destacado na lista Fluxos. Se você escolher uma etapa no espaço de trabalho, o painel Detalhes da etapa mostrará informações sobre ela.Uso dos controles de zoom e ajuste no canto superior esquerdo do espaço de trabalho: esses controles permitem ampliar, reduzir o zoom, ampliar para caber em todo o espaço de trabalho e entrar no modo de tela cheia. Quando você amplia para caber em todo o plano de consulta, o espaço de trabalho centraliza o plano de consulta na horizontal e na vertical.
Uso do minimapa no canto inferior direito do espaço de trabalho: você pode aplicar panorâmica ou zoom ao espaço de trabalho usando o controle de minimapa no canto inferior esquerdo do espaço de trabalho.
Escolha de um fluxo no painel Fluxos: se você escolher um fluxo no painel Fluxos, serão aplicados panorâmica e zoom ao espaço de trabalho para mostrar o fluxo selecionado e informações sobre ele no painel Detalhes do fluxo.
Escolha de uma etapa no painel Detalhes do fluxo: se você escolher uma etapa no painel Detalhes do fluxo, serão aplicados panorâmica e zoom ao espaço de trabalho para mostrar a etapa selecionada e informações sobre ela no painel Detalhes da etapa.
nota
Quando você escolhe uma etapa, seja no espaço de trabalho ou em um painel diferente, o espaço de trabalho tenta uma configuração de panorâmica e zoom que mostre a etapa selecionada da melhor forma possível.
Quando você escolhe um fluxo ou etapa do espaço de trabalho ou de outro painel, só serão aplicados panorâmica e zoom ao espaço de trabalho para esse fluxo ou etapa se a opção Panorâmica e zoom estiver selecionada no controle superior direito do espaço de trabalho. Você pode restringir esse comportamento a panorâmica e zoom, somente panorâmica ou ausência de movimento, basta escolher a configuração apropriada no menu suspenso.

Solução de problemas de consultas com o Query Profiler
Se você estiver solucionando problemas de uma consulta, poderá escolher uma consulta secundária para determinar qual fluxo usa a maior Porcentagem do tempo total de consulta. Essa é uma maneira rápida de determinar qual parte da sua consulta deve ser analisada mais detalhadamente.
Depois de saber qual consulta secundária está demorando mais, visualize as respectivas etapas para ver qual junção ou verificação pode estar causando lentidão no desempenho.