HERE IS THE DOCUMENT I READ IN DETAIL-- This is the complete explanation available in METALINK : ********************** Error: ORA 1594 Text: attempt to wrap into rollback segment (%s) extent (%s) which is being fr eed ------------------------------------------------------------------------------- Cause: Undo generated to free a rollback segment extent is attempting to write into the same extent due to small extents and/or too many extents to free Action: The rollback segment shrinking will be rollbacked by the system; increase the optimal size of the rollback segment. *** Important: The notes below are for experienced users - See [NOTE:22080.1] Explanation: 1594 is reported when a rollback segment is being shrunk but there is not enough space in the current undo extent to complete the job. Shrinking uses whatever is available in the current extent in the rollback segment. If no more space is left and the extent you would move into is one that is being freed you will get 1594. This error is harmless. When you retry, chances are you will not get the same error again. Usually this is caused by running a transaction after a huge transaction commits. Because of the setting of OPTIMAL, a very large number of extents need to be deallocated all at once. One way to avoid this problem is to have larger extent size. Another way is to have a larger OPTIMAL setting, so that only a smaller number of extents will be removed at one time. SET TRANSACTION USE ROLLBACK SEGMENT is also a good idea for large jobs so you know which rollback segment they will use. Note: There are changes to the way SMON shrinks rollback segments in 7.2. It should try to shrink a small number of extents at a time. select a.name, b.extents, b.rssize, b.optsize, b.shrinks, b.aveshrink, b.aveactive, b.wraps, b.extends, b.status from v$rollname a, v$rollstat b where a.usn = b.usn; This is what I got. I have 300 rbs, each with about 2 extents, 1056768 rssize, 2097152 optsize, shrinks are 0 and wraps are about 5 aveactive is 216024. Should I still increase optimal. Thanks I think you should reorganize your undo/rollback segments. How many concurrent users do you have? More than 1000? Then 300 is probably the right amount. But 2 extents in a segment is really the minimum. 20 is OK. TBLSP TYPE NAME BYTES OWNER INIT NEXT EXT MAX --------------- ----- ------------ --------------- ----------- ------------ ------------ ------ ------------ PCT_INC ------- UNDO TYPE2 _SYSSMU1$ 122,880 SYS 131,072 65,536 2 32,765 UNDO 0 TYPE2 _SYSSMU2$ 122,880 SYS 131,072 65,536 2 32,765 UNDO 0 TYPE2 _SYSSMU3$ 122,880 SYS 131,072 65,536 2 32,765 UNDO 0 TYPE2 _SYSSMU4$ 122,880 SYS 131,072 65,536 2 32,765 UNDO 0 TYPE2 _SYSSMU5$ 122,880 SYS 131,072 65,536 2 32,765 UNDO 0 TYPE2 _SYSSMU10$ 1,171,456 SYS 131,072 65,536 3 32,765 UNDO 0 TYPE2 _SYSSMU6$ 1,171,456 SYS 131,072 65,536 3 32,765 UNDO 0 TYPE2 _SYSSMU7$ 1,171,456 SYS 131,072 65,536 3 32,765 UNDO 0 TYPE2 _SYSSMU8$ 1,171,456 SYS 131,072 65,536 3 32,765 UNDO 0 TYPE2 _SYSSMU9$ 1,171,456 SYS 131,072 65,536 3 32,765 UNDO 0 Tablespace Used Free Largest Num Pct Table Space size Space Space Free Ext Free Pct Free Name in Mbytes in Mbytes in Mbytes in Mbytes Ext Free Largest --------------- ------------- --------- --------- --------- ------ ---- ------- AUDIT_DATA 100.0 2.5 97.5 97.5 1 98 98 AUDIT_INDEX 100.0 3.6 96.4 96.4 1 96 96 DATA 8,600.0 7,890.4 709.6 391.9 5 8 5 DOL 500.0 411.6 88.4 88.4 1 18 18 GLOVIALOBS 50.0 .7 49.3 49.3 1 99 99 INDEXES 7,900.0 7,730.2 169.8 168.9 2 2 2 SYSTEM 1,201.0 445.1 755.9 755.9 1 63 63 UNDO 3,000.0 6.3 2,993.7 2,921.9 8 100 97 USERS 50.0 .3 49.7 49.7 1 99 99