Tabela com 300 milhões de registros

Tuning de Banco, Tuning de SQL, Ferramentas de tuning
Responder
dejambo
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 68
Registrado em: Qua, 27 Jun 2012 8:58 am

Boa Tarde Pessoal.

Tenho uma tabela com mais de 300 milhões de registros e existe uma consulta que utiliza essa tabela para gerar um relatório. O problema é que esta consulta está demorando muito e consumindo muito recursos do BD. Já tentei realizar algumas alternativas de tuning nesta consulta mas não consegui melhora-la. Estou sem alternativas, vocês teriam alguma dica neste caso? Será que particionar esta tabela seria uma solução?

Desde já agradeço.
nor.dbajunior
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 9
Registrado em: Qui, 02 Dez 2010 10:32 pm
Localização: cuiaba

Uma solução quando a tabela for grande, você pode particionar a tabela,
caso houver um campo com data, ano por exemplo você pode particionar por ano.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Exatamente.
Outra forma é fazer o uso eficiente dos NULLs.
Lembre-se que campos NULL não são inseridos nos índices.

Um exemplo do que eu estou falando:
Digamos que você quer recuperar todos as linhas ainda não processadas de uma tabela. (tabela com 2 bilhões de linhas, e as linhas que você quer recuperar são 200 ou 300).
Neste caso, você cria um campo STATUS e deixa este campo NULL quando o registro já foi processado.
E deixa 'P' para os registro que você quer processar. Daí, basta criar um índice nesse campo.
OU seja, como os NULLS não vão entrar no índice, essa consulta vai ser super rápida, pois no índice vão ter apenas 200 linhas. Exatamente as que você precisa, e não serã necessário varrer um índice GIGANTE de 2 bilhões de linhas, nem fazer FULL SCAN).
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes