临时表空间组的创建、维护及应用

关于临时表空间组的概念和简单描述可以参考Oracle官方文档的“Oracle Database SQL Reference”(statements_7003.htm Temporary Tablespaces Group [ID 245645.1]”文章。本文就临时表空间组的创建及简单维护做一个实践。1.数据库版本信息SQL> select * from v$version;BANNER----------------------------------------------------------------Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProdPL/SQL Release 10.2.0.1.0 - ProductionCORE 10.2.0.1.0 ProductionTNS for Linux: Version 10.2.0.1.0 - ProductionNLSRTL Version 10.2.0.1.0 - Production2.创建临时表空间组TEMP_GRP,其中包含两个临时表空间TEMP1、TEMP2sys@ora10g> create temporary tablespace TEMP1 tempfile '/oracle/oradata/ora10g/temp1_01.dbf' size 10m autoextend on tablespace group group1;Tablespace created.sys@ora10g> create temporary tablespace TEMP2 tempfile '/oracle/oradata/ora10g/temp2_01.dbf' size 10m autoextend on tablespace group group1;Tablespace created.3.使用DBA_TABLESPACE_GROUPS视图可以查看临时表空间组的信息sys@ora10g> select * from dba_tablespace_groups;GROUP_NAME TABLESPACE_NAME------------------------------ ------------------------------GROUP1 TEMP1GROUP1 TEMP2可见,临时表空间组GROUP1包含了两个临时表空间TEMP1和TEMP2。满足了我们临时表空间组创建的要求。4.指定临时表空间组GROUP1为所有新创建的用户的默认临时表空间sys@ora10g> alter database default temporary tablespace GROUP1;Database altered.sys@ora10g> create user secooler identified by secooler;User created.sys@ora10g> select USERNAME,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users where username = 'SECOOLER';USERNAME DEFAULT_TABLESPACE TEMPORARY_TABLESPACE-------------- --------------------- ---------------------SECOOLER USERS GROUP1OK,此时新创建的secooler用户的默认临时表空间已经指定到了临时表空间组GROUP1上。5.将临时表空间TEMP2移动到临时表空间组GROUP2sys@ora10g> alter tablespace TEMP2 tablespace group GROUP2;Tablespace altered.sys@ora10g> select * from dba_tablespace_groups;GROUP_NAME TABLESPACE_NAME------------------------------ ------------------------------GROUP1 TEMP1GROUP2 TEMP2系统中本没有GROUP2临时表空间组,此处系统会自动创建这个数据库对象。6.移除临时表空间组中所有临时表空间后临时表空间组会自动删除sys@ora10g> select * from dba_tablespace_groups;GROUP_NAME TABLESPACE_NAME------------------------------ ------------------------------GROUP1 TEMP1GROUP2 TEMP2sys@ora10g> alter tablespace TEMP2 tablespace group '';Tablespace altered.sys@ora10g> select * from dba_tablespace_groups;GROUP_NAME TABLESPACE_NAME------------------------------ ------------------------------GROUP1 TEMP17.临时表空间组应用一例sys@ora10g> alter tablespace TEMP2 tablespace group GROUP1;Tablespace altered.sys@ora10g> select * from dba_tablespace_groups;GROUP_NAME TABLESPACE_NAME------------------------------ ------------------------------GROUP1 TEMP1GROUP1 TEMP2开启两个不同的session连接到secooler用户执行下面排序语句secooler@ora10g> select a.table_name, b.table_name from all_tables a, all_tables b order by 1;经过反复尝试之后可以看到同一个用户的不同session可以使用到临时表空间组中的不同临时表空间sys@ora10g> select username, session_num, tablespace from v$sort_usage;USERNAME SESSION_NUM TABLESPACE------------------------------ ----------- -------------------------------SECOOLER 1506 TEMP1SECOOLER 3662 TEMP28.小结使用临时表空间组的优势及注意事项:1.临时表空间组中可以包含无数个临时表空间,没有限制,这样扩大了临时表空间的大小,保证有充足的临时表空间;2.临时表空间组的名字不可以和已有的临时表空间名字相同;3.临时表空间组不是显式创建的,而是随临时表空间被指定到临时表空间组时隐式创建的。当临时表空间组中的所有临时表空间被移除或被删除之后,该临时表空间组也随即被删除;4.同一个用户连接的多个会话可以使用到临时表空间组中的不同临时表空间,提高系统的性能。Good luck.secooler10.07.13-- The End --
了解更多网络知识关注:http://www.vecloud.com/