Deletar ou não deletar eis a questão

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
Tinho
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 319
Registrado em: Seg, 16 Nov 2009 4:50 pm
Localização: São Paulo - SP

Outro dia conversando sobre trabalho com os colegas em uma pausa para o café, mais especificamente sobre as demandas e definição de escopo.

Um dos casos relatados, estava sendo solicitado a exclusão de uma grande massa de dados antigas do ambiente transacional solicitado por um determinado departamento. A demanda foi atendida sem questionamento. A justificativa para o atendimento da demanda foi que a tabela está muito grande, cheia, pesada, lentidão, etc.

Alguns dias depois foi percebido um grande numero de incidentes em sustain, sobre inconsistência de dados, como registros órfãos, valores que não batiam, nos relatórios ou consultas no sistema.

Do meu ponto de vista, se vê ai uma falta de alinhamento dos processos internos entre as áreas de negócio ou falha na comunicação. Mas a questão que quero levantar é que, de todas as bibliografias de referencia que li sobre banco de dados, elas são unanimes e categóricas em afirmar que não se exclui dados históricos. Em contrapartida, se de fato os dados estão obsoletos no ambiente transacional, ou mesmo por ocupação de espaço físico ou problema na performance, qual seria a forma direta de proceder?
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

Pode se criar partition na tabela, colocando dados antigos em outra tablespace. (ou mesmo em outro disco).
Também é possível colocar os dados antigos em outro banco, mas daí é mais complicado, pois acredito que a aplicação deverá estar preparada pra isso.
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Tinho,

Só me chamou a atenção a referencia "à registros órfãos".

Se o seu banco de dados estiver devidamente normalizado, e existirem todas as FKs, então não deveriam existir "registros órfãos" em sua base.

Acho que a sugestão/orientação do Thomas já dá o caminho das pedras. Se por algum motivo não for possível você criar tabelas particionadas, uma idéia seria criar um outro schema em sua instancia que seria uma cópia vazia de sua base oficial.

Depois, antes de deletar a base oficial, você copiaria os registros a serem deletados para este schema de histórico. Havendo algum problema grave após a limpeza, você teria como restaurar parcial ou totalmente estes dados.

Abraços,

Sergio Coutinho

Abraços,

Sergio Coutinho
Tinho
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 319
Registrado em: Seg, 16 Nov 2009 4:50 pm
Localização: São Paulo - SP

Obrigado pelas informações e participação senhores. Certamente foi de grande valia.

E Scoutinho, respondendo ao seu questionamento, infelizmente as tabelas não estão normalizadas, existem tabelas com colunas obsoletas e independentes da chave, tabelas sem índices ou chaves-primárias bem como estrangeiras também, neste cenário tudo pode aconter.

Abçs.,
Responder
  • Informação
  • Quem está online

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