Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

288
Vistas
El comando Crear índice de Postgres se cuelga

Esto es similar a un problema reciente que publiqué en el que el comando COPIAR estaba colgado para un gran conjunto de datos. En ese caso, se debió a una restricción de clave externa. Pero en este caso estoy creando un índice, por lo que creo que un FK no sería un problema, aunque todavía deshabilité los disparadores en la mesa por si acaso. Estoy tratando de agregar un btree index regular en una tabla con 10 mil millones de filas. El índice está en dos campos int . Intenté ejecutarlo y duraba una eternidad, así que pensé que podría ser demasiado lento, max_parallel_maintenance_workers a 8 y maintenance_work_mem a 2047 MB (estoy en Windows, así que es el máximo).

En ese momento, las cosas parecían ir más rápido, pero ocurrió el mismo problema: puedo ver que los archivos crecen en la carpeta pgsql_tmp/pgsql_tmpxxxx.x.sharedfileset , hasta que simplemente se detienen, pero la creación del índice nunca parece terminar.

Me preguntaba si había configurado demasiados trabajadores por alguna razón, así que intenté configurarlo en 4, el mismo problema. Los archivos se modificaron por última vez alrededor de las 3:20 am, son las 7:35 am y todavía se está ejecutando. Los archivos en la carpeta tienen 261 GB, lo que se ve bien en comparación con el tamaño de la tabla y cada vez que ejecuto el proceso se detiene en ese tamaño, por lo que asumo que ya terminó con la creación del índice, simplemente no tengo idea de lo que podría estar haciendo. en este punto. En caso de que importe, la tabla tiene una clave externa en otra tabla que tiene mil millones de registros, pero los disparadores están deshabilitados en la tabla, lo que me ha funcionado para cargar datos en la tabla. Revisé si hay bloqueos, no hay ninguno, no está esperando ningún bloqueo, lo cual tiene sentido porque esta es una base de datos de prueba con datos ficticios que creé para probar algunas cosas, por lo que nadie más sabe que existe o tiene algún uso.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

La creación de un índice se ejecuta en varias etapas. La tabla debe leerse, los valores deben ordenarse y el índice debe crearse en el disco.

En ciertas etapas, verá que los archivos temporales crecen, en otras no, aunque CREATE INDEX todavía esté funcionando. Tal vez esté escribiendo el archivo de índice en este momento.

Así que ten paciencia, se acabará.

Si está nervioso, mire en pg_locks para ver si CREATE INDEX está bloqueado por algo. Ese puede ser el caso si se trata de CREATE INDEX CONCURRENTLY , que tiene un procesamiento más complicado.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda