Olá,

Em 30 de julho de 2012 14:15, Flavio Henrique Araque Gurgel <
[email protected]> escreveu:

>
> 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)
>

Tive problema parecido na semana passada. Seria versão 9.0.4 do PostgreSQL?

> >
> > 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
>


Abraços
-- 
JotaComm
http://jotacomm.wordpress.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a