Come visualizzare le query postgres con blocco completo?


9

Sto usando una dichiarazione da questa pagina per visualizzare le query di blocco in Postgres

SELECT bl.pid                 AS blocked_pid,
         a.usename              AS blocked_user,
         ka.query               AS blocking_statement,
         now() - ka.query_start AS blocking_duration,
         kl.pid                 AS blocking_pid,
         ka.usename             AS blocking_user,
         a.query                AS blocked_statement,
         now() - a.query_start  AS blocked_duration
  FROM  pg_catalog.pg_locks         bl
   JOIN pg_catalog.pg_stat_activity a  ON a.pid = bl.pid
   JOIN pg_catalog.pg_locks         kl ON kl.transactionid = bl.transactionid AND kl.pid != bl.pid
   JOIN pg_catalog.pg_stat_activity ka ON ka.pid = kl.pid
  WHERE NOT bl.granted;

Tuttavia, le query vengono troncate, quindi in genere non riesco a vedere cosa c'è nella WHEREclausola che rende molto difficile il debug di questi problemi di blocco. C'è un'impostazione in cui posso dire a Postgres di registrare tutte le querypg_stat_activity

Risposte:


11

La lunghezza della query tracciata può essere trovata nel parametro track_activity_query_size.

18.8.1. Raccoglitore di statistiche su query e indici

track_activity_query_size (integer)

Specifica il numero di byte riservati per tenere traccia del comando attualmente in esecuzione per ciascuna sessione attiva, per il pg_stat_activity.current_querycampo. Il valore predefinito è 1024 . Questo parametro può essere impostato solo all'avvio del server.

ad es. se avessi track_activity_query_size=16384nella tua configurazione, ciò significherebbe che verrebbe raccolto un testo di query fino a 16k.


1
Giusto per essere sicuro che sia chiaro (come indicato nel preventivo, che potrebbe essere trascurato). La modifica dell'opzione di configurazione richiederà un riavvio del server affinché abbia effetto.
Joishi Bodio,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.