Creio que o indice parcial seria a melhor soluçao .... Mas já havia aplicado a solução acima proposta... Gravar null ... Fiz a alteração no sistema onde gravava espaço em branco no CPF agora grava null....Dai desabilitei as triggers e funcionou normalmente...

Galera... valeu pela força ....

É vendo os posts dessa lista que vejo que ainda tenho muito o que aprender em postgres... E também aprendo muito com eles ...

Por mais que não posso ajudar a resolver o problema tento acompanhar até o fim a solução !!

VLW...
Thiago Risso


On 6/20/06, Osvaldo Kussama <[EMAIL PROTECTED]> wrote:
Thiago Risso < [EMAIL PROTECTED]> escreveu:
A tabela tem cerca de 140.000 registros.
Quanto a colocar como unique eu não posso, pois posso gravar o CPF em branco, mas não posso repeti-lo ....
Eu tive que implantar essa trigger a uns dois meses atras, quando foi necessário aceitar cadastros com CPF em branco... até então era um campo unique.
E antes de colocar essa trigger os updates  GERAIS (SEM WHERE - PARA TODOS OS REGISTROS) eram muito rápidos....
Já cheguei a deixar a query executando por 2 minutos ... ai tive que matar pq o banco não respondia nenhuma outra query ....



Você considerou a possibilidade de criação de um índice parcial?
CREATE UNIQUE INDEX seu_indice_parcial ON candidato (ncpf)
WHERE (ncpf != '' AND ncpf
NOTNULL);

[]s
Osvaldo


P.S. Isto não ajudará nos "UPDATES GERAIS". Avalie com um EXPLAIN ANALYZE o plano de execução de um update sem cláusula where.


Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora!


_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
http://www.postgresql.org.br


_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
http://www.postgresql.org.br

Responder a