In a lively production system where the code evolves, every day is a stress test. Setting up a database in a similar way is knowing when to stop; when performance is acceptable, you stop.
In particular, Oracle, the debate about whether to rebuild indexes has been raging for years; some people believe it, some do not. The index represents the structure of the tree B *; It will accurately reflect the data in the table. In many cases (exceptions to be observed), rebuilding the index is akin to what happens on a diet in a collision; Of course, indexes will become skinny in the short term, but over time - perhaps in just a few days or hours of processing - they will return to their previous state. While performance is consistent with goals, why bother? Index recovery generates significant I / O activity (you need to read the table and / or index) and either generates significant repeat activity (by writing repetition vectors for new index entries) or requires immediate backup (if you restored the index using NOLOGGING, the index now does not recover )
Exceptions:
Raster indexes usually need to be disabled and rebuilt by dataloads, as they can pathologically inflate through DML activity
If one radically offloads a lot of data and uses global indexes or some other non-locally partitioned index, combining (not rebuilding, just pushing adjacent space on adjacent leaves together) may be reasonable.
source share