Pergunta

Eu estive carga testar um aplicativo e quando eu entrei no console empresa notei que o meu espaço de tabela UNDOTBS está cheio.

Eu sei que o espaço de tabela UNDOTBS é usado para manter uma cópia dos dados que existe antes de uma transação iniciada. Eu pensei que esses dados seria transitória e expirar uma vez por concluída transação / rolos de volta?

Do I simplesmente excluir o espaço de tabela, expandi-lo, ou se existe uma maneira de purgar-lo?

UPDATE: O db teve nenhuma atividade durante a noite. Alguém pode explicar por que a Oracle ainda precisa esses dados?

Foi útil?

Solução

Deixe-o. É assim que deveria ser. Oracle vai gerenciar e re usar-lo como necessário.

Response to update:

The UNDOTBS não se comporta como outros espaços de tabela ... os dados são deixados lá e marcado como não utilizado quando já não é necessário em vez de ser explicitamente excluída.

Você geralmente não precisa se preocupar com isso, a menos que você está fazendo DML bastante considerável e começar a receber erros, momento em que você pode olhar para aumentar o tamanho UNDOTBS, baixando o seu desfazer retenção etc.

Outras dicas

Além do que cagcowboy já postou, se o undo é constantemente cheia e você está recebendo erros. Certifique-se de que o seu desfazer é o tamanho corretamente e que a retenção de undo é fixado em um valor que é apropriado para o tamanho. Se a retenção de undo está situado no alto, você vai precisar de mais espaço alocado para desfazer a reter informações para o limite de tempo especificado na retenção de undo. Apenas transação fora idade com base na retenção de undo será limpo e excluídos.

Tenha um olhar em seu período de retenção de undo - certifique-se ele não é muito grande, oracle otyherwise vai apenas manter buffer de dados até que o espaço de tabela enche. Um período adequado vai depender do seu aplicativo

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top