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
