I understand that a tablespace is a logical collection of tables and database objects. It could be made up of multiple data files (which are physical collections of objects). Apart from this, what are some of the advantages or use cases of tablespaces?
Few uses for the tablespaces:
- When you no longer need the data you can drop the tablespace and delete datafiles. This is basically the only way to release space back from Oracle to the operating system.
- When doing backups you can exclude tablespace from backup. E.g. if it contains non essential or easily recreatable data.
- When doing restore you can skip tablespace. E.g. if you need only specific table or you need to start as soon as possible you can skip index tablespaces and rebuild indexes online.
- Tablespace per user can be useful. Then when user is no longer needed you drop the user then drop tablespace and have disk space back. Also if user suddenly starts to generate lots of data only his tasks will break when tablespace becomes full. Other users will be unaffected.
- Data blocks corruption usually is contained within tablespace. In such cases only one tablespace is affected.
- You can store tablespaces (datafiles) on different types of disks. So you can manually manage which data goes on SSD and which on SATA.
- In really rare cases you may need different block size for the tablespace.
- You can choose to compress the whole tablespace content.
- You can move selected data to a tablespace, unplug it from the database and attach to another database. This is transportable tablespace.