20160822Oracle 11g Temporary Tablespace

简介: [20160822]Oracle 11g Temporary Tablespace.txt 1.11G改进了Temporary Tablespace管理,可以回收临时表空间.

[20160822]Oracle 11g Temporary Tablespace.txt

1.11G改进了Temporary Tablespace管理,可以回收临时表空间.

alter tablespace temp shrink space;
alter tablespace temp shrink space keep 10m;

--也可以单独回收一个临时表空间数据文件.
alter tablespace temp shrink tempfile  '/u01/app/Oracle/oradata/test/temp01.dbf' keep 5m;


2.可以指定临时表使用那个临时表空间,这点对于一些应用比较有用.通过例子来说明:

SCOTT@test01p> @ ver1
PORT_STRING                    VERSION        BANNER                                                                               CON_ID
------------------------------ -------------- -------------------------------------------------------------------------------- ----------
IBMPC/WIN_NT64-9.1.0           12.1.0.1.0     Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production              0

--//家里仅仅12c,应该也能说明问题.
--//缺省已经建立了临时表空间.

CREATE TEMPORARY TABLESPACE TEMP TEMPFILE
  'D:\APP\ORACLE\ORADATA\TEST\TEST01P\TEST01P_TEMP01.DBF' SIZE 388M AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
TABLESPACE GROUP ''
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

--//可以发现UNIFORM SIZE=1M,这样加入每个session都要使用一些小的临时表,每个至少需要1M,大量的会话占用许多临时表空间.
--//我们可以建立UNIFORM SIZE=64K的临时表空间,而建立的临时表指定到这个临时表空间,这样空间就没有这么浪费了.

CREATE TEMPORARY TABLESPACE TEMP01 TEMPFILE
  'D:\APP\ORACLE\ORADATA\TEST\TEST01P\TEST01P_TEMP02.DBF' SIZE 100M AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 64K;

SCOTT@test01p> SCOTT@test01p> create global temporary table temp_test(id number ,text varchar2(100)) on commit delete rows tablespace temp01;
Table created.

SCOTT@test01p> insert into temp_test values (1,'a');
1 row created.

SCOTT@test01p> @ spid
       SID    SERIAL# SPID       PID  P_SERIAL# C50
---------- ---------- ------ ------- ---------- --------------------------------------------------
       242         25 6808        22          5 alter system kill session '242,25' immediate;

--不提交执行如下:
  SELECT s.username
        ,s.sid
        ,u.tablespace
        ,u.contents
        ,u.segtype
        ,ROUND (u.blocks * 8192 / 1024) KB
    FROM v$session s, v$sort_usage u
   WHERE s.saddr = u.session_addr AND u.contents = 'TEMPORARY'
ORDER BY KB DESC;

USERNAME                    SID TABLESPACE                     CONTENTS  SEGTYPE           KB
-------------------- ---------- ------------------------------ --------- --------- ----------
SCOTT                       242 TEMP01                         TEMPORARY DATA              64

--//这样仅仅需要64K.
SCOTT@test01p> commit ;
Commit complete.


--如果不指定:
SCOTT@test01p> create global temporary table temp_testx(id number ,text varchar2(100)) on commit delete rows;
Table created.

SCOTT@test01p> insert into temp_testx values (1,'a');
1 row created.
USERNAME                    SID TABLESPACE                     CONTENTS  SEGTYPE           KB
-------------------- ---------- ------------------------------ --------- --------- ----------
SCOTT                       242 TEMP                           TEMPORARY DATA            1024

--这样即使插入很少的数据也使用1M.

3.看看这两种不同UNIFORM SIZE的是否可以建立临时表空间组:

SCOTT@test01p> ALTER TABLESPACE TEMP TABLESPACE GROUP ttt;
Tablespace altered.

SCOTT@test01p> ALTER TABLESPACE TEMP01 TABLESPACE GROUP ttt;
Tablespace altered.

--取消.
SCOTT@test01p> ALTER TABLESPACE TEMP TABLESPACE GROUP '';
Tablespace altered.

SCOTT@test01p> ALTER TABLESPACE TEMP01 TABLESPACE GROUP '';
Tablespace altered.

目录
相关文章
|
SQL 存储 Oracle
Oracle 临时事务表 全局临时表_global temporary table
所有的操作都在一个事务里,事务提交后,此表清空,特别适合做插入删除频率特别高的临时表操作,比如插入完数据就开始查询,查询完就删掉等,用完就扔! 临时表分事务级临时表和会话级临时表。 事务级临时表只对当前事务有效,通过语句:ON COMMIT DELETE ROWS 指定。
1586 0
|
Oracle 关系型数据库
PLSQL_Oracle临时表Temporary Table基本概念和用法(概念)
2014-06-08 Created By BaoXinjian 一、基本概念 1. 我对临时表的理解: 在 Oracle 中创建一张表,这个表不用于其他的什么功能,主要用于自己的软件系统一些特有功能才用的,而当你用完之后表中的数据就没用了。
1330 0
|
SQL Oracle 关系型数据库
oracle数据库中的大对象2—— temporary lobs
              到目前为止,我们讨论的都是持久化到数据库中的lob数据,但是实际应用中,我们有时候并不需要将数据持久化到数据库中,那么就需要用到Temporary lob(临时lob),它就像局部变量一样,并不持久化到数据库中。
1239 0
|
3月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
365 93
|
2月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】使用NetManager创建Oracle数据库的监听器
Oracle NetManager是数据库网络配置工具,用于创建监听器、配置服务命名与网络连接,支持多数据库共享监听,确保客户端与服务器通信顺畅。
202 0
|
5月前
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
5月前
|
存储 Oracle 关系型数据库
【赵渝强老师】Oracle RMAN的目录数据库
Oracle RMAN默认将备份元信息存储在控制文件中,但控制文件损坏或丢失会导致恢复失败,且备份增多会使控制文件无限增长。为解决这些问题,Oracle引入了RMAN目录数据库(Catalog Database),专门用于存储RMAN备份的元信息。使用目录数据库可提升备份管理效率,支持多数据库共享、长期备份历史记录存储,并可保存RMAN脚本。本文详细介绍了如何创建目录数据库、注册目标数据库及其操作步骤。
142 0
|
8月前
|
Oracle 安全 关系型数据库
【Oracle】使用Navicat Premium连接Oracle数据库两种方法
以上就是两种使用Navicat Premium连接Oracle数据库的方法介绍,希望对你有所帮助!
1585 28
|
6月前
|
存储 Oracle 关系型数据库
oracle数据恢复—oracle数据库执行错误truncate命令的数据恢复案例
oracle数据库误执行truncate命令导致数据丢失是一种常见情况。通常情况下,oracle数据库误操作删除数据只需要通过备份恢复数据即可。也会碰到一些特殊情况,例如数据库备份无法使用或者还原报错等。下面和大家分享一例oracle数据库误执行truncate命令导致数据丢失的数据库数据恢复过程。

推荐镜像

更多