Pular para o conteúdo

Fóruns Banco de dados Oracle Delete no Oracle Delete no Oracle

#87358
David Siqueira
Participante

    Opa e ai anderson tudo bem?
    Bom, a idéia inicial cara é que você crie um processo pra essa deleção com commits a cada 1000 registros ou mais, afim de liberar espaço de undo durante seu processo.

    Outra opção é você olhar seu parametro de UNDO_RETENTION pode ser que esteja muito alto, mantendo por maior tempo os dados na área de Undo desnecessariamente.

    Uma outra opção seria tirar a opção de LOGGING da tabela evitando assim que gere redo, mais isso não é lá uma pratica muito recomendada.

    Você pode também tentar criar uma tabela auxiliar com os dados que você precisa ( será necessário espaço em disco suficiente) com a mesma estrutura da tabela original porem contendo só a massa que você deseja manter, e feito isso você TRUNCA tabela gigante , isso não gerara REDO e consequentemente não consumirá sua Tablespace.

    Outra maneira é exporta a tabela com o parametro query pegando apenas os dados pertinentes e truncando a original após fazer o backup do que precisa, e depois basta reimportar, tomando o cuidade de desfragmetala antes disso, reorganizando espaços utilizado e elimininado buracos em seu banco.

    Bom , hehe..acho que são essas as possibilidades que eu tentaria.
    Espero ter te ajudado.

    Abraço.
    David.