Re: Adicionando data con COPY

From: Diego <mrstephenamell(at)gmail(dot)com>
To: "Carlos T(dot) Groero Carmona" <ctonetg(at)gmail(dot)com>
Cc: Lista PostgreSql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Adicionando data con COPY
Date: 2019-11-07 12:33:45
Message-ID: 06299c16-eea3-3cd7-b244-407a3bad39ff@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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 <mrstephenamell(at)gmail(dot)com
> <mailto:mrstephenamell(at)gmail(dot)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
>>
>>
>>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2019-11-07 12:45:34 Re: Adicionando data con COPY
Previous Message Carlos T. Groero Carmona 2019-11-06 20:20:05 Re: Adicionando data con COPY