>> Pessoal,
>>           fizemos alguns testes aqui com tabelas particionadas (10
>> partições, por exemplo). Ao alterar o datatype de um campo (da
>> pai, é claro) o tempo deste comando ficou 20% mais lento do que
>> alterar o mesmo campo para uma cópia desta tabela, porém uma
>> única tabela, sem partições. O campo alterado no teste não faz
>> parte de índice algum e a alteração foi bem simples, de
>> varchar(30) para varchar(50).
>>
>>           Entendo que o esforço é o mesmo quanto ao volume de dados, porém
>> na tabela particionada há mais controles e objetos a nível de
>> dicionário de dados. Mas mesmo assim acreditava que a diferença
>> não fosse tão grande. Há algum recurso para otimizar esta
>> operação?
>>
>> * como são várias partições não seria viável ter várias threads para fazer
>> isto simultaneamente?
>>
>> * banco PostgreSQL 9.0 (e 9.1)
>> * SO Windows

Você pode alterar os tipos por partição e depois na tabela pai.
Imagine as tabelas:
x (pai)
x1 (filha 1)
x2 (filha 2)

Desligue a herança:
ALTER TABLE x1 NO INHERIT x;
ALTER TABLE x2 NO INHERIT x;

Altere os tipos:
ALTER TABLE x1 ALTER COLUMN....
ALTER TABLE x2 ALTER COLUMN....
ALTER TABLE x ALTER COLUMN....

Ligue a herança novamente:
ALTER TABLE x1 INHERIT x;
ALTER TABLE x2 INHERIT x;

[]s
Flavio Gurgel
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a