Hola,

Me agarra la duda en la parte de "Pero la pregunta surge porque cuando insertamos normalmente, no se bloquea la tabla ni los indices que serian modificados."

Si una tabla tiene pk, y los datos a insertar caen, digamos, al final de la pk, ocurre como decis... pero si caen el medio de la tabla...¿que pasa?

Realmente, tendria que hacer la prueba y ver, porque no se.


Lo que si se me ocurre, es que  todo esto seria fuera de una transaccion, ya que de esar en medio de una, si tendrias bloqueos hacia las demas consultas que esten usando la tabla de destino.


En fin, no se, habria que probar y leer el manual

Avisame como te va...


On 6/11/19 17:20, Carlos T. Groero Carmona wrote:
Diego gracias pr tu comentario, como tenia mis dudas es lo que tenia pensado hacer, crear una tabla temp con la misma estructura que la tabla principal y entonces usando un insert into with select desde la otra tabla limitado con indices or algun script para insertar in batch.

Pero la pregunta surge porque cuando insertamos normalmente, no se bloquea la tabla ni los indices que serian modificados.

Al final solo estariamos cargando postgres resources pero no deberiamos ver looks durante ese proceso.

Gracias,
Carlos

On Wed, Nov 6, 2019 at 6:20 AM Diego <mrstephenam...@gmail.com <mailto:mrstephenam...@gmail.com>> wrote:

    Hola Carlos,

    Con copy, creo qeu solo bloquearias la parte que dura la
    actualizacion de indices y seqs, si fuera una tabla solo con pk,
    volaria.

    Se me ocurre que podes subir la data con copy a una tabla igual,
    con otro nombre, y desde ahi ir pasandola por lotes de 600 rows
    con insert into a la tabla original.

    por otro lado, en vez de respaldar a csv, quizas un dump con -Fc y
    -t a la tabla, te permitiria ganar velocidad y pordias aplicar
    durante el restore como dicia recien.

    En fin, espero sirva.

    Salu2

    On 5/11/19 21:57, Carlos T. Groero Carmona wrote:
    Hola lista,

    Tengo una tabla con 30GB de data in production y tuve que
    eliminar 21k tuplas. El proceso de dele fue bien porque lo hice
    en bashes de 600 por transaction. Antes de eliminar esta
    information cree una copia en un csv file.

    He estado buscando si tengo que rollback esta data utilizando el
    comando copy esto podria bloquear mi tabla mientras el comando
    esta corriendo?

    Probe el comando en otro environment y funciono sin problema pero
    tengo curiosidad acerca que pasara si esto pasara en production.

    Como siempre, gracias por sus comentarios y consejos,
    Carlos



Reply via email to