oracle 临时表

1.CREATE GLOBAL TEMPORARY TABLE TEST_1 (ID VARCHAR2(2)) ON COMMIT DELETE ROWS;

2.CREATE GLOBAL TEMPORARY TABLE TEST_2 (ID VARCHAR2(2)) ON COMMIT PRESERVE ROWS;

1.事务级的临时表,就是一旦提交表里就没有数据.

2.会话级的临时表,只有当前会话可以看到这个表的数据.

3.不同会话可以使用同一个临时表,互相不影响.(上面两个特性确保了不同会话使用一个临时表不会产生冲突)

相关部分

涉及语法

数据文件----datafile

临时文件----tempfile

创建表空间

create tablespace test_space '/home/app/oracle/oradata/sjdev/TSSH_DATA01.DBF' size 500m  reuse autoextend on next  20m maxsize 1000m;(reuse是调用的是已经存在的空数据文件,如果不存在就忽略这个参数)

关于reuse

1.If the file already exists, then Oracle reuses the filename and applies the new size (if you specify SIZE) or retains the original size.

2.If the file does not exist, then Oracle ignores this clause and creates the file.

3.如果这个数据文件存在并且已经使用了,这时候你去reuse这个数据文件,那么他不会去覆盖原来的表空间,会报错.(测试环境11g);

删除表空间

drop tablespace test_space ;注意这样删除只是表空间不存在了,但是数据文件还存在;如果再一次创建相同目录下相同名字的数据文件,就会报错.

drop tablespace test_space including contents and datafiles;这样数据文件会跟着一起删除.

不能直接手动直接删除数据文件,这样会导致数据库报错.

扩大表空间

1.更改表空间大小

alter database datafile '/home/app/oracle/oradata/sjdev/TSSH_DATA01.DBF' resize 500m;

2.给表空间增加数据文件

alter tablespace test_space add datafile '/home/app/oracle/oradata/sjdev/TSSH_DATA02.DBF' size 500m ;

更改默认的临时表空间

alter database default temporary tablespace temp_01;

 临时表空间满(在网上看了很多导致临时表空间增长的原因 不描述)

 释放临时表空间

1.直接缩小表空间

1.1  杀掉正在使用临时表的会话

1.2 alter database tempfile '/u01/app/oracle/oradata/GSP/temp01.dbf' resize 500m;

 2 删除临时表空间

2.1.创建中转的临时表空间

2.2 把中转表空间设置成默认表空间

2.3删除临时表空间然后重新建临时表空间

2.4把新建临时表空间改成默认表空间

2.5删除中转表空间

posted @ 2019-05-07 16:02  木剑闯江湖  阅读(271)  评论(0编辑  收藏  举报