É possível ver o tempo de execução de um alter table
comando?
Eu acho que com \timing
o psql, ele mostra mais do que o tempo de execução, mas também a viagem de ida e volta do cliente e talvez outras coisas também. O que eu quero é o "tempo de execução" mostrado por explain analyze
. Mas eu não posso alter table
percorrer explain analyze
(certo?).
Ligue
\timing
, execute seuALTER TABLE
eSELECT 1
.Subtraia os valores para uma boa estimativa.
Você não pode executar comandos alter table por meio de EXPLAIN ANALYZE.
Você pode usar
\timing
e comparar isso com outras consultas e fazer algumas contas para ver a sobrecarga, mas acho que provavelmente recomendaria agrupar a instrução DDL entre 2select now();
comandos (todos na mesma linha, para eliminar viagens de ida e volta). Tecnicamente, isso também terá alguma sobrecarga adicional, mas provavelmente menos do que\timing
.Você também pode tentar ativar log_statement e log_duration no conf e capturar o tempo do comando lá. Qualquer coisa mais específica e você provavelmente precisaria de algo de nível excessivamente baixo, como strace ou gdb.