Hola Tengo una tabla de 15Mill. de registros... y a las 00:00 hrs. hay una shell que ejecuta en el mismo server de la bd (como root) lo siguiente:
\COPY (SELECT id, fecha FROM data_catalog.tabla) TO '/path/archivo.txt' Se demora menos de 3 minutos, lo que en términos prácticos a mi juicio está bien, sin embargo, en el mismo horario se produce lentitud en "otros procesos" de la plataforma cuyo resultado es que se demoren más de un cierto parámetro de tiempo provocando "alertas de timeout". Estos "otros procesos" se ejecutan durante todo el día, pero en este instante generan esas alertas.. Una vez finalizado el COPY se terminan las alertas. Lo hemos cambiado de horario para descartar, pero el problema sigue asociado a dicha ejecución. La tabla en cuestión tiene hartos Inserts, Updates y Deletes y se ejecuta diariamente: vacuum analyze data_catalog.tabla; (este vacuum es posterior a la ejecución del COPY..) Las conecciones son sólo las propias de la plataforma y sus módulos lo que en total no significan más de 8 conecciones...o no más de 12 pensando en usuarios que quisieran ver reportes... pero no a esa hora. Algunos datos: La tabla no tiene indices salvo la PK (id) que es el valor usado en todas las operaciones. RAM: 8GB CPU: 8 Cores, Intel(R) Xeon(R), 2.66GHz shared_buffers = 2048MB work_mem = 150MB #maintenance_work_mem = 16MB (def) #effective_cache_size = 128 MB (def) Preguntas: El tiempo que se demora está bien... pero al parecer estaría usando CPU, RAM o disco de tal forma que afecta por ese par de minutos a los otros procesos..... Se puede acelerar más este COPY??... o se le puede "quitar" recursos para que los otros procesos no se vean afectados??... Agradecido desde ya. Saludos AP.