Perguntas frequentes - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Perguntas frequentes

Encontre respostas para perguntas frequentes sobre o ajuste do desempenho da consulta.

O que é EXPLAIN?

EXPLAINé uma palavra-chave que você acrescenta a uma consulta PostgreSQL (SELECT,, UPDATEINSERT,DELETE) para gerar um plano de consulta. O plano de consulta do PostgreSQL detalha como o banco de dados pretende executar a consulta. Esse plano inclui informações sobre a ordem de uma varredura de tabela, uso de índices e junções.

Use o plano de consulta para identificar possíveis gargalos, otimizar consultas e melhorar o desempenho geral. Ao analisar o plano de consulta, considere os seguintes fatores:

  • Abordagens de acesso à tabela

  • Junte abordagens

  • Condições do filtro

  • Operações de classificação

  • Uso do índice

  • Paralelismo

  • Statistics

  • Estimativas de custo

  • Linhas recuperadas de cada etapa

  • Distribuição de dados

Para obter mais informações sobre EXPLAIN, consulte a documentação do PostgreSQL.

O que é EXPLAIN ANALYZE?

Quando você adiciona um prefixo EXPLAIN ANALYZE a uma consulta e executa a consulta, o PostgreSQL executa a consulta e retorna o plano de consulta e as estatísticas de tempo de execução. O tempo de execução real, as linhas processadas em cada etapa e outras informações relevantes são exibidas junto com o plano de consulta. O uso EXPLAIN ANALYZE em um banco de dados de produção deve ser feito com cuidado, pois a execução da consulta pode afetar o desempenho do banco de dados durante a análise.

Para obter mais informações sobre EXPLAIN ANALYZE, consulte a documentação do PostgreSQL.

O que é agrupamento no PostgreSQL?

No PostgreSQL, um agrupamento é um conjunto de regras para determinar como as strings são comparadas e classificadas. O agrupamento define a ordem na qual os caracteres são considerados nas comparações, considerando as regras e conversões específicas do idioma.

Para obter mais informações sobre agrupamento, consulte a documentação do PostgreSQL.

O que é um CTE?

Em um banco de dados PostgreSQL, uma Expressão de Tabela Comum (CTE) é um conjunto de resultados temporário nomeado que você pode referenciar. Os CTEs fornecem uma maneira de criar consultas SQL mais legíveis e modulares dividindo a lógica complexa em unidades menores e nomeadas.

Para obter mais informações sobre CTEs, consulte a documentação do PostgreSQL.

Quais são as categorias de funções no PostgreSQL?

Cada função do PostgreSQL tem uma classificação de volatilidade, com as possibilidades VOLATILE sendo,, ou: STABLE IMMUTABLE

  • VOLÁTIL — Uma VOLATILE função pode fazer qualquer coisa, inclusive modificar o banco de dados. Ele pode retornar resultados diferentes em chamadas sucessivas com os mesmos argumentos. O otimizador não faz suposições sobre o comportamento de tais funções. Uma consulta usando uma função volátil reavaliará a função em cada linha em que seu valor for necessário.

  • ESTÁVEL — Uma STABLE função não pode modificar o banco de dados. É garantido que retornará os mesmos resultados com os mesmos argumentos para todas as linhas em uma única instrução. Quando você usa essa classificação, o otimizador pode otimizar várias chamadas da função para uma única chamada. Em particular, é seguro usar uma expressão que contenha essa função em uma condição de varredura de índice. (Como uma varredura de índice avaliará o valor de comparação apenas uma vez, não uma vez em cada linha, não é válido usar uma VOLATILE função em uma condição de varredura de índice.)

  • IMUTÁVEL — Uma IMMUTABLE função não pode modificar o banco de dados e tem a garantia de retornar os mesmos resultados com os mesmos argumentos para sempre. Quando você usa essa classificação, o otimizador pode pré-avaliar a função quando uma consulta a chama com argumentos constantes. Por exemplo, uma consulta como a SELECT ... WHERE x = 2 + 2 pode ser simplificada à primeira vistaSELECT ... WHERE x = 4, porque a função subjacente ao operador de adição de números inteiros está marcadaIMMUTABLE.

VOLATILEé o padrão se o CREATE FUNCTION comando não especificar uma categoria. Para obter mais informações sobre os tipos de função, consulte a documentação do PostgreSQL.