Usando parâmetros de registro para capturar variáveis de vinculação - 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á.

Usando parâmetros de registro para capturar variáveis de vinculação

Um caso de uso típico para capturar variáveis de vinculação no PostgreSQL é depurar e ajustar o desempenho de consultas SQL. Uma variável de associação permite que você passe dados para uma consulta ao executá-la. Ao capturar as variáveis de associação, você pode ver os dados de entrada que foram passados para uma consulta, o que pode ajudá-lo a identificar quaisquer problemas com os dados ou com o desempenho da consulta. A captura das variáveis de vinculação também pode ajudá-lo a auditar os dados de entrada e detectar possíveis riscos de segurança ou atividades maliciosas.

Há várias maneiras de capturar variáveis de vinculação para o PostgreSQL. Um método é ativar os debug_print_rewritten parâmetros debug_print_parse e. Isso faz com que o PostgreSQL envie as versões analisadas e reescritas das instruções SQL, junto com as variáveis vinculadas, para o log do servidor.

  • debug_print_parse: quando você ativa esse parâmetro, a árvore de análise das consultas recebidas é impressa no log do servidor. Isso pode ser útil para entender a estrutura de uma consulta e os valores de qualquer parâmetro vinculado.

  • debug_print_rewritten: quando você ativa esse parâmetro, as formas reescritas das consultas recebidas são impressas no log do servidor. Isso pode ser útil para entender como o planejador de consultas interpreta uma consulta e os valores de quaisquer parâmetros vinculados.

Você pode usar dois parâmetros adicionais no Amazon RDS e no Aurora para capturar variáveis de associação em seus bancos de dados PostgreSQL:

  • log_min_duration_statement: esse parâmetro define a duração mínima de uma instrução antes de ser registrada, em milissegundos. Quando uma instrução demora mais do que a duração especificada, seus valores de vinculação são incluídos na saída do log.

  • log_statement: esse parâmetro controla quais instruções SQL são registradas. Defina esse parâmetro como all ou vincule para incluir os valores vinculados no registro. O aumento do nível de registro afeta o desempenho, por isso recomendamos que você reverta as alterações após a solução de problemas.

Você também pode usar a pg_stat_statements extensão, que fornece estatísticas de desempenho para todas as instruções SQL executadas por um servidor, incluindo o texto da consulta e os valores vinculados. Essa extensão permite que você use o pGADmin ou ferramentas similares para monitorar e analisar o desempenho da consulta.

Outra opção é usar a pg_bind_parameter_status() função para obter os valores dos parâmetros vinculados de uma instrução preparada ou usar a pg_get_parameter_status (paramname) função para recuperar o status ou o valor de um parâmetro de tempo de execução específico.

Além disso, você pode usar ferramentas de terceiros, como o pGBadger, para analisar os registros do PostgreSQL e extrair as variáveis de vinculação e outras informações para análise posterior.