首页 > oracle知识 > oracle视图 >

oracle的 DBA_TEMP_FREE_SPACE视图作用是查看表空间级别的临时空间使用率信息

作者: 初见博客 分类: oracle视图 发布时间: 2021-07-13 17:56

1.2 DBA_TEMP_FREE_SPACE视图
该字典视图是在Oracle 11g新增加的视图,用来查看表空间级别的临时空间使用率信息。此信息是从各种现有视图中导出的。

(1) 列出临时空间使用率信息

(2) 临时表空间使用率中心点

 

列名 说明

TABLESPACE_NAME 表空间的名称

TABLESPACE_SIZE 表空间的总大小(以字节为单位)

ALLOCATED_SPACE 已分配的总空间(以字节为单位),包括当前已分配的且正在使用中的空间以及当前已分配的且可重用的空间

FREE_SPACE 可用的总空间(以字节为单位),包括当前已分配的、可重用的以及当前未分配的空间

 

1.3 创建临时表的表空间选项
从Oracle Database11g 版本1 开始,可以在创建全局临时表时指定TABLESPACE子句。

如果没有指定表空间,将在默认的临时表空间中创建全局临时表。此外,还会在与临时表相同的临时表空间中创建在临时表中创建的索引。

注:

可以在DBA_TABLES 中查找用于存储全局临时表的表空间。

如:

CREATE TEMPORARY TABLESPACE temp

TEMPFILE 'tbs_temp.dbf' SIZE 600m REUSEAUTOEXTEND ON MAXSIZE

UNLIMITED

EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1m;

CREATE GLOBAL TEMPORARY TABLE temp_table (cvarchar2(10))

ON COMMIT DELETE ROWS TABLESPACE temp;

 

二.示例

2.1 查看dba_temp_free_space

SQL> set lin 160

SQL> col tablespace_name for a20

SQL> col tablespace_size for 99999999999

SQL> col allocated_space for 99999999999

SQL> col free_space for 99999999999

SQL> select * from dba_temp_free_space;

TABLESPACE_NAME TABLESPACE_SIZE ALLOCATED_SPACE FREE_SPACE

-------------------- ------------------------------ ------------

TEMP 524288000 7340032 523239424

SQL> select 524288000/1024/1024||'M'from dual;

5242

----

500M

–这里的Temp 表空间是500M。

 

2.2 执行temp 表空间的online shrink 操作:

SQL> alter tablespace temp shrink spacekeep 400M;

Tablespace altered.

SQL> select * from dba_temp_free_space;

TABLESPACE_NAME TABLESPACE_SIZE ALLOCATED_SPACE FREE_SPACE

-------------------- ------------------------------ ------------

TEMP 420478976 1048576 419430400

SQL> select 420478976/1024/1024||'M'from dual;

4204

----

401M

2.3 shrink 数据文件
–如果有多个temp数据文件,也可以直接指定某个特定的temp 数据文件来进行shrink:

SQL> col file_name for a50

SQL> select file_name fromdba_temp_files;

FILE_NAME

--------------------------------------------------

/u01/app/oracle/oradata/anqing/temp01.dbf

SQL> alter tablespace temp shrinktempfile '/u01/app/oracle/oradata/anqing/temp01.dbf' keep 300M;

Tablespace altered.

SQL> select * from dba_temp_free_space;

TABLESPACE_NAME TABLESPACE_SIZE ALLOCATED_SPACE FREE_SPACE

-------------------- ------------------------------ ------------

TEMP 315613184 1040384 314572800

SQL> select 315613184/1024/1024||'M' from dual;

315613184/10

------------

300.9921875M

2.4 keep 选项说明
KEEP 选项用来指定压缩时表空间或者数据文件shrink的最小值,如果没有执行该命令,那么表空间或数据文件将被压缩到最小值。

SQL> alter tablespace temp shrink space;

Tablespace altered.

SQL> select * from dba_temp_free_space;

TABLESPACE_NAME TABLESPACE_SIZE ALLOCATED_SPACE FREE_SPACE

-------------------- ------------------------------ ------------

TEMP 2088960 1040384 1048576

SQL> select 2088960/1024/1024||'M' fromdual;

2088960/10

----------

1.9921875M

–这里直接被压到2M了。Temp 表空间过小对性能是有影响的,所以在shrink时,还是建议使用keep 指定最小值。

————————————————
版权声明:本文为CSDN博主「Dave」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tianlesoftware/article/details/8225395

发表回复

您的电子邮箱地址不会被公开。