中国网管论坛's Archiver

花香公子 发表于 2006-12-6 23:32

深入彻底的讨论表空间的作用和用法

学ORACLE也有一些日子,请大家来论讨一下关于ORACLE各表空间的作用和什么时候会用到那种表空间

对于一个用户系统默认的会建立。TEMP UNDOTABS USER SYSTEM这几个表空间。那请问这几个表空间各有什么

作用呢?

当学了ORACLE的人都会说。TEMP表空间是放处理的临时数据的,比如排序操作。UNDOTABS表空间是数据恢复时用到。

USER表空间是存班实数据的。

但是大家有谁能真正说明清楚各个表空间,在使用那些SQL语句是,会对那一个表空间消耗磁盘空间呢?


比如我现在知道的只是,当SQL语句中有SORT之来排序的语句时,会对TEMP表空间时的磁盘产生消耗

花香公子 发表于 2006-12-6 23:32

USER表空间是存班实数据的,多以,对数据的DML操作会影响此空间。
UNDOTABS表空间是为了保持读一致性的,所以一般在对数据的DML操作会在此空间保存旧的数据。
具体的其他特性还是从书上看吧

花香公子 发表于 2006-12-6 23:33

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是系统保留用的,最好不要用它

页: [1]

Powered by Discuz! Archiver 6.1.0  © 1999-2008 bbs.bitsCN.com