熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle10g臨時表空間組

2013-11-13 15:59:01  來源: Oracle 

  Oracle g 引進了臨時表空間組(temporary tablespace group)的概念它允許用戶在不同的會話中同時利用多個臨時表空間

   臨時表空間組的主要特征

  &#; 一個臨時表空間組必須由至少一個臨時表空間組成並且無明確的最大數量限制

  &#; 如果刪除了一個臨時表空間組的所有成員該組也自動被刪除

  &#; 臨時表空間的名字不能與臨時表空間組的名字相同

  &#; 在給用戶分配一個臨時表空間時可以使用臨時表空間組的名字代替實際的臨時表空間名;在給數據庫分配默認臨時表空間時也可以使用臨時表空間組的名字

   臨時表空間組的有點

  使用臨時表空間組而非普通的臨時表空間有如下好處

  &#; 由於SQL查詢可以並發使用幾個臨時表空間進行排序操作因此SQL查詢很少會出現排序空間超出避免當臨時表空間不足時所引起的磁盤排序問題

  &#; 可以在數據庫級指定多個默認臨時表空間

  &#; 一個並行操作的並行服務器將有效地利用多個臨時表空間

  &#; 一個用戶在不同會話中可以同時使用多個臨時表空間

   管理 臨時表空間組

  臨時表空間組是在創建臨時表空間時通過指定GROUP字句創建的可以將一個表空間從一個組移動另一個組或是從一個組中刪除臨時表空間或是往組裡添加新的表空間

   創建臨時表空間組

  創建臨時表空間時指定GROUP

   CREATE SMALLFILE
  TEMPORARY TABLESPACE TEMP
  TEMPFILE
  /u/app/oracle/oradata/orcl/temp_tbs_adbf SIZE M REUSE
  AUTOEXTEND ON NEXT K MAXSIZE UNLIMITED
  EXTENT MANAGEMENT LOCAL
  UNIFORM SIZE M
  TABLESPACE GROUP TBS_GROUP_
  GO
  CREATE SMALLFILE
  TEMPORARY TABLESPACE TEMP
  TEMPFILE
  /u/app/oracle/oradata/orcl/temp_tbs_adbf SIZE M REUSE
  AUTOEXTEND ON NEXT K MAXSIZE UNLIMITED
  EXTENT MANAGEMENT LOCAL
  UNIFORM SIZE M
  TABLESPACE GROUP TBS_GROUP_
  GO
  CREATE SMALLFILE
  TEMPORARY TABLESPACE TEMP
  TEMPFILE
  /u/app/oracle/oradata/orcl/temp_tbs_adbf SIZE M REUSE
  AUTOEXTEND ON NEXT K MAXSIZE UNLIMITED
  EXTENT MANAGEMENT LOCAL
  UNIFORM SIZE M
  TABLESPACE GROUP TBS_GROUP_
  GO
  CREATE SMALLFILE
  TEMPORARY TABLESPACE TEMP
  TEMPFILE
  /u/app/oracle/oradata/orcl/temp_tbs_adbf SIZE M REUSE
  AUTOEXTEND ON NEXT K MAXSIZE UNLIMITED
  EXTENT MANAGEMENT LOCAL
  UNIFORM SIZE M
  TABLESPACE GROUP TBS_GROUP_
  GO

   查詢臨時表空間組

   SELECT * FROM DBA_TABLESPACE_GROUPS
  GROUP_NAME TABLESPACE_NAME
   
  TBS_GROUP_ TEMP
  TBS_GROUP_ TEMP
  TBS_GROUP_ TEMP
  TBS_GROUP_ TEMP

   臨時表空間的移動

  可以將未分組已分組的臨時表空間移動到指定的 臨時表空間中或者是移出

  &#;將未分組的臨時表空間TEMP_加入分組TBS_GROUP_

  ALTER TABLESPACE TEMP_ TABLESPACE GROUP TBS_GROUP_

  &#;將已分組的臨時表空間TEMP_加入分組TBS_GROUP_

  ALTER TABLESPACE TEMP TABLESPACE GROUP TBS_GROUP_

  &#;將已分組的臨時表空間TEMP移除分組TBS_GROUP_

  ALTER TABLESPACE TEMP TABLESPACE GROUP

  查看結果

   SELECT * FROM DBA_TABLESPACE_GROUPS
  GROUP_NAME TABLESPACE_NAME
   
  TBS_GROUP_ TEMP
  TBS_GROUP_ TEMP_
  TBS_GROUP_ TEMP
  TBS_GROUP_ TEMP

   把臨時表空間組指定給用戶

  &#;查看用戶的默認表空間

   SELECT USERNAME DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
FROM DBA_USERS

  &#;創建用戶時指定

   CREATE USER zhangzj IDENTITY BY zhangzj
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE tbs_group_

  &#;修改已有用戶

   ALTER USER ZHANGZJ TEMPORARY TABLESPACE TBS_GROUP_

   設置數據庫臨時表空間組

   ALTER DATABASE ORCL DEFAULT TEMPORARY TABLESPACE TBS_GROUP_

   同一個用戶的不同session使用不同的臨時表空間

  首先用sys用戶查詢

   SELECT USERNAME SESSION_NUM TABLESPACE FROM V$SORT_USAGE

  測試過程

  新開session執行 

   SQL> conn zhangzj/zhangzj

  已連接

   SELECT ATABLE_NAME BTABLE_NAME
FROM DICT A DICT B ORDER BY ATABLE_NAME

  新開session執行

   SQL> conn zhangzj/zhangzj

  已連接

   SELECT ATABLE_NAME BTABLE_NAME FROM DICT A DICT B

  sys查詢

   SQL> SELECT USERNAME SESSION_NUM TABLESPACE FROM V$SORT_USAGE;
  USERNAME SESSION_NUM TABLESPACE
    
  ZHANGZJ  TEMP
  ZHANGZJ  TEMP

  可以發現同一個用戶ZHANGZJ的兩個session分別使用了兩個不同的臨時表空間

   刪除臨時表空間組

  即刪除組成臨時表空間組的所有臨時表空間

  先查看要刪除的 臨時表空間組包含哪些 臨時表空間

   SELECT * FROM DBA_TABLESPACE_GROUPS

  然後刪除 這些臨時表空間即可

   DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES
  GO
DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES
  GO


From:http://tw.wingwit.com/Article/program/Oracle/201311/17621.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.