¿Hay alguna manera de monitorear el progreso de la creación de un índice en PostgreSQL? Estoy creando un índice en una tabla grande y me gustaría ver qué tan rápido está ocurriendo esto.
¿Hay alguna manera de monitorear esto?
postgresql
index
myahya
fuente
fuente
Respuestas:
De acuerdo con la página de Mantenimiento del Índice de Postgres Wiki , puede averiguar el estado actual de todos sus índices con:
La columna
num_rows
indica cuántas filas está cubierto por su índice yindex_size
crecerá a medida que se va creando el índice.fuente
Por lo tanto, no hay una buena manera de hacerlo, pero si realmente necesita saber ... primero calcule la cantidad de espacio que debe tomar el índice, en función del tamaño de los datos * filas + sobrecarga. Luego puede usar algo como pfiles o pgtruss para encontrar los archivos que se escriben dentro de $ PGDATA; Si sus índices superan 1 GB, será una serie de archivos como nnnnn.n, donde el primer conjunto de n es coherente y el último n se incrementa para cada archivo GB. Una vez que sepa cuántos archivos se crean, puede ver el crecimiento y determinar qué tan cerca está de terminar. Estimación aproximada, pero tal vez ayuda.
fuente
No, no lo hay, incluso si lo está construyendo en modo CONCURRENTE. Aunque en el pasado he observado el tamaño del archivo en el directorio de la base de datos, esto no es realmente útil, ya que solo puede adivinar qué tan grande será.
fuente
Será posible en la próxima versión de PostgreSQL 12 (debería lanzarse el 3 de octubre de 2019).
Consulte los documentos de la vista pg_stat_progress_create_index y la publicación de blog de depesz para obtener más detalles.
fuente