临时表空间及临时表空间组创建

Temporary tablespace is used to store data as intermediate data, temporary table and temporary indexes, temporary lobs and temporary b*trees

数据库的默认temporary tablespace是TEMP,也可以通过create tablespace创建新的临时表空间,同时为了满足需求也是为每个用户设定不懂的临时表空间,使用create user default或者alter user命令。

系统默认临时表空间 

SQL> select * from database_properties;

PROPERTY_NAME                  PROPERTY_VALUE                                     DESCRIPTION
------------------------------ -------------------------------------------------- --------------------------------------------------
DICT.BASE                      2                                                  dictionary base tables version #
DEFAULT_TEMP_TABLESPACE        TEMP                                               Name of default temporary tablespace
DEFAULT_PERMANENT_TABLESPACE   USERS                                              Name of default permanent tablespace
DEFAULT_EDITION                ORA$BASE                                           Name of the database default edition
Flashback Timestamp TimeZone   GMT                                                Flashback timestamp created in GMT
TDE_MASTER_KEY_ID
DST_UPGRADE_STATE              NONE                                               State of Day Light Saving Time Upgrade
DST_PRIMARY_TT_VERSION         14                                                 Version of primary timezone data file
DST_SECONDARY_TT_VERSION       0                                                  Version of secondary timezone data file
DEFAULT_TBS_TYPE               SMALLFILE                                          Default tablespace type
NLS_LANGUAGE                   AMERICAN                                           Language

PROPERTY_NAME                  PROPERTY_VALUE                                     DESCRIPTION
------------------------------ -------------------------------------------------- --------------------------------------------------
NLS_TERRITORY                  AMERICA                                            Territory
NLS_CURRENCY                   $                                                  Local currency
NLS_ISO_CURRENCY               AMERICA                                            ISO currency
NLS_NUMERIC_CHARACTERS         .,                                                 Numeric characters
NLS_CHARACTERSET               AL32UTF8                                           Character set
NLS_CALENDAR                   GREGORIAN                                          Calendar system
NLS_DATE_FORMAT                DD-MON-RR                                          Date format
NLS_DATE_LANGUAGE              AMERICAN                                           Date language
NLS_SORT                       BINARY                                             Linguistic definition
NLS_TIME_FORMAT                HH.MI.SSXFF AM                                     Time format
NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM                           Time stamp format

PROPERTY_NAME                  PROPERTY_VALUE                                     DESCRIPTION
------------------------------ -------------------------------------------------- --------------------------------------------------
NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR                                 Time with timezone format
NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR                       Timestamp with timezone format
NLS_DUAL_CURRENCY              $                                                  Dual currency symbol
NLS_COMP                       BINARY                                             NLS comparison
NLS_LENGTH_SEMANTICS           BYTE                                               NLS length semantics
NLS_NCHAR_CONV_EXCP            FALSE                                              NLS conversion exception
NLS_NCHAR_CHARACTERSET         AL16UTF16                                          NCHAR Character set
NLS_RDBMS_VERSION              11.2.0.4.0                                         RDBMS version for NLS parameters
GLOBAL_DB_NAME                 PROD                                               Global database name
EXPORT_VIEWS_VERSION           8                                                  Export views revision #
WORKLOAD_CAPTURE_MODE                                                             CAPTURE implies workload capture is in progress

PROPERTY_NAME                  PROPERTY_VALUE                                     DESCRIPTION
------------------------------ -------------------------------------------------- --------------------------------------------------
WORKLOAD_REPLAY_MODE                                                              PREPARE implies external replay clients can connec
                                                                                  t; REPLAY implies workload replay is in progress

NO_USERID_VERIFIER_SALT        61FE9A498A8FB6995B77028E02D6C276
DBTIMEZONE                     00:00                                              DB time zone

36 rows selected.

查看临时表空间的使用量

SQL> SELECT * from DBA_TEMP_FREE_SPACE;

TABLESPACE_NAME         TABLESPACE_SIZE ALLOCATED_SPACE FREE_SPACE
------------------------------ --------------- --------------- ----------
TEMP     396361728     396361728 384827392

创建临时表空间的语法

SQL> CREATE TEMPORARY TABLESPACE temp_g1 TEMPFILE  '/u01/app/oracle/oradata/dbmon/temp_g101.dbf'
     SIZE 256M REUSE
     EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M;

正常在生产环境中会使用临时表空间组来管理临时表空间,临时表空间组的特点:

1.至少有一个临时表空间组成,oracle db没有明确规定限制表空间组临时表空间的数量;

2.临时表空间组的名称和表空间不能设置为同名

3.临时表空间组可以包含所有临时表空间,无论此临时表空间是database临时表空间或用户设定默认临时表空间;

临时表空间组的优点:临时表空间组可以减少单个临时表空间的故障,支持并发,是sql复杂查询更快的完成。

查看临时表空间组视图DBA_TABLESPACE_GROUPS

SQL> desc dba_tablespace_groups;
 Name   Null?    Type
 ----------------------------------------------------------------------------------------------------------------- -------- ----------------------------------------------------------------------------
 GROUP_NAME   NOT NULL VARCHAR2(30)
 TABLESPACE_NAME

创建临时表空间组

可以通过create temporary tablespace 或 alter tablespace 创建临时表空间组,方法如下:

SQL> alter tablespace temp_g1 tablespace group temp_group;
Tablespace altered.
SQL> create temporary tablespace temp_g2 tempfile '/u01/app/oracle/oradata/dbmon/temp_g201.dbf' size 200m  extent management local uniform size 16m tablespace group temp_group;

Tablespace created.

SQL> select * From dba_tablespace_groups;

GROUP_NAME       TABLESPACE_NAME
------------------------------ ------------------------------
TEMP_GROUP       TEMP_G1
TEMP_GROUP       TEMP_G2 
设置数据库的默认临时表空间为临时表空间组
SQL> alter database default temporary tablespace temp_group;

Database altered.

当临时表空间容量不够时可以通过create temporary tablepsace添加新的临时表空间,也可以通过添加临时表空间组中临时临时表空间的大小

查看临时表空间使用量相关视图

dba_temp_free_space

V$TEMPSEG_USAGE

V$TEMPFILE

V$TEMPORARY_LOBS

V$TEMPSTAT

V$TEMP_CACHE_TRANSFER
V$TEMP_EXTENT_MAP
V$TEMP_EXTENT_POOL
V$TEMP_PING

V$TEMP_SPACE_HEADER


你可能感兴趣的:(tablespace,temporary)