Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: About Rollback Segments

Re: About Rollback Segments

From: Crazylongs <crazylongs_at_aol.com>
Date: 1997/11/29
Message-ID: <19971129025600.VAA21040@ladder02.news.aol.com>#1/1

There is no way to disable rollback segments! What is happening is that each deleted row, as it is being deleted, is being replicated in the rollback segment, in case your transaction fails or you would otherwise request to rollback your delete. Here are some options:

  1. If all rows are deleted daily from the table, and you are sure you want ALL rows to be deleted without the chance to roll back this transaction, use the TRUNCATE TABLE statement. It does not use the RS, but again, all rows are definately gone once this staement is run. Note that it is VERY VERY fast, and is best if an entire table is to be "wiped out" without droppping and re-creating the table.
  2. You could write a PL SQL or embedded SQL in a C or other 3GL programming language to delete rows in sets of say 50,000 rows at a time. Set the transaction, count the number of deletes one row at a time, commit when you hit your chosen number (if 50,000 works, great if not choose a smaller number), and then start another transaction and repeat sets of deletes until there are no more rows. If all rows are not to be deleted, this method can be used to set other criterion on which rows to delete and which are not to be deleted.
  3. Make your RS bigger, try agin, make it bigger, try again...at the risk of running out of disk space. I think Oracle 8.0 allows unlimited extents of rollback segments, but again, you risk running out ofspace, and you aren't at Oracle 8.0
Received on Sat Nov 29 1997 - 00:00:00 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US