create [smallfile|bigfile] tablespace tablespace_name datafile ‘/path/filename’ size num reuse [autoextend [on|off]] next num [maxsize num|unlimited] [mininum extent num] [default storage storage] [online|offline] [logging|nologging] [permanent|temporary] [extent management dictionary|local [autoallocate|uniform size num]]
语法中的关键词 smallfile|bigfile :表示创建的是小文件表空间还是大文件表空间。默认是小文件表空间resuse :表示若文件存在,则清楚该文件再重新建立该文件autoextend [on|off] next:表示数据文件为自动扩展(on)或非自动扩展(off),如果为自动扩展需要设置next的值maxsize 表示当数据文件自动扩展时,允许数据文件扩展的最大长度字节数,如果指定unlimited,则不需要指定字节长度mininum extent 指定最小长度,由操作系统的块决定logging|nologging:指定表空间里的表在加载数据时是否产生日志permanent|temporary:创建临时表空间还是永久表空间。默认是永久表空间extent management dictionary|local:指定表空间的扩展方式是使用数据字典管理还是本地化管理。默认本地化管理autoallocate|uniform size num:如果采用本地化管理,在表空间扩展时,指定每次盘区扩展的大小是由系统自动指定还是按照等同大小进行。若是同等大小默认是1M 通过本地化管理方式创建表空间 例1:通过本地化管理方式(local)创建一个大小10mb的表空间,其扩展大小为256KB create tablespace tbs_test_1 datafile 'D:\\oraclefiles\oracle\datafile1.dbf' size 10m extent management local uniform size 256k;例2:通过本地化管理方式创建一个大小为10MB的表空间,自动扩展大小
create tablespace tbs_test_1 datafile 'D:\\oraclefiles\oracle\datafile1.dbf' size 10m extent management local autoallocate;在ORACEL创建用户时,如果不指定表空间,则默认临时表空间为temp,默认永久表空间是system,这样会导致应用系统和oracle系统竞争表空间,会极大影响oracle表空间的执行效率。为此oracle建议将非system表空间的表空间设置为默认永久表空间,将非TEMP表空间设置为默认临时空间。
alter database default temprory tablespace temp_1 alter database default tablespace tbs_example表空间有只读和可读写两种装态,若设置某个表空间为只读状态,则用户就不能够对该表空间进行DML操作。但是设置只读不是什么随意就可以设置的,需要再指定条件下。必须满足以下条件。
该表空间必须为OnLine状态该表空间不能包含回滚段该表空间不能在归档模式下 alter tablespace tbs_test_3 read only; alter tablespace tbs_test_3 read write;数据库管理员是不能对system和sysaux表空间进行重命名的,也不能对处于offline的表空间进行重命名
alter tablespace tbs_test_3 rename to tbs_test_3_new;删除表空间需要具备drop tablespace权限。默认情况下ORACEL不采用ORACEL managed files管理文件,这样删除表空间,实际上是从数据字典和控制文件中,将该表空间的有关信息删掉,并没有删除表空间含有的实际文件。 例1,删除表空间tab_test及其包含的所有内容。
drop tablespace tbs_test including contents cascade constraints;