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 comoall
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.