Em 30-07-2012 12:50, Marco Aurélio Carvalho Feitosa escreveu: > Bom dia, senhores > > CONTEXTO: > Tenho uma tabela de movimentações do processos que é alimentada diariamente > através de uma transformação (ETL - pentaho). > Esta tabela está atualmente com mais de 20 milhões de registros. > Nesta tabela temos um índice (mpinstancia , mpcodcomr , mpanoproc , mpnumproc) > > PROBLEMA: > Hoje me deparei com um problema que aparentemente é resultado de um índice > corrompido. > > SELECT mpinstancia, mpcodcomr, mpanoproc, mpnumproc, mpsequencial FROM > bpu.movimentacao_processo > WHERE mpinstancia = 1 AND mpcodcomr = 10 AND mpanoproc = 2001 AND mpnumproc = > 1890 > > está retornando: > > mpinstancia mpcodcomr mpanoproc mpnumproc mpsequencial > 1 10 2001 1890 1 > 1 10 2001 1890 2 > 1 10 2001 1890 3 > 1 10 2001 1890 4 > 1 10 2001 1890 5 > 1 10 2001 1890 6 > 1 10 2001 1890 7 > 1 10 2001 1890 8 > 1 10 2001 1890 9 > 1 10 2001 1890 10 > 1 10 2001 1890 11 > 1 10 2001 1890 12 > 1 10 2001 1890 13 > 1 10 2001 1890 14 > 1 10 2001 1890 15 > 1 10 2001 1890 16 > 1 10 2008 914321 60 > 1 10 2001 1890 19 > 1 10 2001 1890 20 > 1 10 2009 901354 21 > > > Como vcs devem ter notado a consulta retornou 2 registros que não satisfazem > aos > critérios informados. Esse erro não ocorre quando a mesma consulta é executada > sem a restrição "mpinstancia = 1" (sem utilizar o índice) > > Quais as possíveis causas desse problema? Como posso evitá-lo ou remediá-lo?
Nunca vi índice corromper no PostgreSQL sem que um erro de página corrompida caísse no log e a consulta fosse cancelada. Talvez seu problema seja no relacionamento índice x tabela (as tuplas do índice apontam pras tuplas erradas da tabela) mas nunca vi isso, só se você fez algo manualmente de forma grosseira. Todavia, você pode fazer um REINDEX (reconstruir o índice) e ver se seu problema se resolve. Em tempo, qual é a versão exata do PostgreSQL e do Sistema Operacional? Ah, e também, quais os tipos de dados das colunas afetadas e o tipo do índice. É um "covering index" ou outro tipo de índice não btree? []s Flavio Henrique A. Gurgel Consultor e Instrutor 4Linux Tel: +55-11-2125-4747 www.4linux.com.br _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
