› Fóruns › Banco de dados Oracle › Delete no Oracle › Delete no Oracle
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.