Bom dia, senhores

AMBIENTE:
PostgreSQL 9.0.2 on x86_64-pc-linux-gnu, compiled by gcc-4.3.real (Debian 
4.3.2-1.1) 4.3.2, 64bit

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)

Recriei o índice e a consulta voltou a funcionar como era esperado.

Quais as possíveis causas desse problema? Como posso evitar que volte a 
acontecer?

Desde já, obrigado

-- 
Marco Aurélio Carvalho Feitosa
Analista de Sistemas
Tribunal de Justiça do Estado de Roraima
(95) 3198-2834/2837
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a