对于一个用户系统默认的会建立。TEMP UNDOTABS USER SYSTEM这几个表空间。那请问这几个表空间各有什么
作用呢?
当学了ORACLE的人都会说。TEMP表空间是放处理的临时数据的,比如排序操作。UNDOTABS表空间是数据恢复时用到。
USER表空间是存班实数据的。
但是大家有谁能真正说明清楚各个表空间,在使用那些SQL语句是,会对那一个表空间消耗磁盘空间呢?
比如我现在知道的只是,当SQL语句中有SORT之来排序的语句时,会对TEMP表空间时的磁盘产生消耗。
USER表空间是存班实数据的,多以,对数据的DML操作会影响此空间。
UNDOTABS表空间是为了保持读一致性的,所以一般在对数据的DML操作会在此空间保存旧的数据。
update table_test set description='explain for tablespace' where name='yjip';
当你发出这条语句给oracle后, oracle会用到这些tablespace:
1. where条件如果引用了index or other条件导致产生排序操作, 这时会用到TEMP tablespace;
2. oracle收到这条语句后,会申请一块undo块来存放原先的数据,以便rollback时用,用的是undo tablespace;
3. oracle收到这条语句后,会申请一块redo块来存放所需更新的数据,以便redo时用,用的是redo tablespace;
4. SYSTEM tablespace是系统保留用的,最好不要用它.