Existe uma maneira de monitorar o progresso da criação de um índice no PostgreSQL. Estou criando um índice em uma tabela grande e gostaria de ver com que rapidez isso está ocorrendo.
Existe uma maneira de monitorar isso?
postgresql
index
myahya
fonte
fonte
Respostas:
De acordo com a página de Manutenção de Índice do Postgres Wiki , você pode descobrir o estado atual de todos os seus índices com:
A coluna
num_rows
indica quantas linhas são cobertas pelo seu índice eindex_size
aumentam à medida que o índice está sendo criado.fonte
Portanto, não há uma boa maneira de fazer isso, mas se você realmente precisa saber ... primeiro calcule a quantidade de espaço que o índice deve ocupar, com base no tamanho dos dados * linhas + sobrecarga. Você pode usar algo como pfiles ou pgtruss para encontrar os arquivos que estão sendo gravados dentro de $ PGDATA; se seus índices tiverem mais de 1 GB, haverá uma série de arquivos como nnnnn.n, em que o primeiro conjunto de n é consistente e o último n é incrementado para cada arquivo em GB. Depois de saber quantos arquivos são criados, você pode observar o crescimento e descobrir o quão perto está de terminar. Estimativa aproximada, mas talvez isso ajude.
fonte
Não, não há, mesmo se você estiver construindo no modo CONCURRENTE. Embora no passado eu tenha ficado de olho no tamanho do arquivo no diretório do banco de dados, isso não é realmente útil, pois você pode apenas imaginar o tamanho dele.
fonte
Isso será possível na próxima versão do PostgreSQL 12 (deve ser lançada em 3 de outubro de 2019).
Consulte os documentos da visualização pg_stat_progress_create_index e da postagem no blog de depesz para obter detalhes.
fonte