在Oracle中,用户的默认永久性表空间为system,默认临时表空间为temp。如果所有的用户都使用默认的临时表空间,无疑会增加system与temp表空间的竞争性。
Oracle允许使用自定义的表空间作为默认的永久性表空间,使用自定义临时表空间作为默认临时表空间。
设置默认的表空间的语法如下。
alter database default [temporary] tablespace tablespace_name
如果使用temporary关键字,则表示设置默认临时表空间;如果不适用该关键字,则表示设置默认永久性表空间。
查询默认的表空间
select property_name,property_value from database_properties where property_name in('DEFAULT_PERMANENT_TABLESPACE','DEFAULT_TEMP_TABLESPACE');
PROPERTY_NAME PROPERTY_VALUE
-------------------- --------------------
DEFAULT_TEMP_TABLESP TEMP
DEFAULT_PERMANENT_TA USERS
如上面的查询结果所示,系统默认的临时表空间为temp,默认的新用户的表空间为users。
SQL> create tablespace testpsace
2 datafile 'e:\oracledata\testspace.dbf'
3 size 10m;
表空间已创建。
SQL> alter database default tablespace testspace;
数据库已更改。
SQL> alter database default temporary tablespace mytemp;
数据库已更改。
再次查询如下所示
SQL> select property_name,property_value from database_properties where property_name in('DEFAULT_PERMANENT_TABLESPACE','DE
FAULT_TEMP_TABLESPACE');
PROPERTY_NAME PROPERTY_VALUE
-------------------- --------------------
DEFAULT_TEMP_TABLESPACE MYTEMP
DEFAULT_PERMANENT_TABLESPACE TESTSPACE
此时,系统默认的表空间被修改了。