环境:

sys@ORCL> select * from v$version;

BANNER

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

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

PL/SQL Release 10.2.0.1.0 - Production

CORE    10.2.0.1.0      Production

TNS for Linux: Version 10.2.0.1.0 - Production

NLSRTL Version 10.2.0.1.0 - Production

在Oracle中,temp犹如win下的虚拟内存和unix下的swap分区

TTG是10g引入的概念,目的就是为了减少IO竞争

只有临时表空间可以定组,普通的表空间无法定组

对待TTG就像对待单个临时表空间一样,无甚区别

TTG本身不能被创建,它随着temp的加入而创建,temp的脱离而删除

alter tablespace temp tablespace group '';

我们知道一个用户只能使用一个临时表空间,而一个临时表空间中只存在一个临时段

当一个session在使用临时段时,其他session再请求临时段时需要等到拥有该临时段的session使用完毕之后才能使用

而临时表空间组的出现大大改善了同一用户并发session对临时段的争夺

因为临时表空间组的出现使用户能够使用多个临时表空间了

下面作个简单测试

sys@ORCL> create temporary tablespace temp1 tempfile size 20M tablespace group tempg;

Tablespace created.

sys@ORCL> create temporary tablespace temp2 tempfile size 20M tablespace group tempg;

Tablespace created.

sys@ORCL> create temporary tablespace temp3 tempfile size 20M tablespace group tempg;

Tablespace created.

sys@ORCL> alter database default temporary tablespace tempg;

Database altered.

sys@ORCL> drop tablespace temp;

Tablespace dropped.

sys@ORCL> select * from dba_tablespace_groups;

GROUP_NAME                    TABLESPACE_NAME

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

TEMPG                          TEMP1

TEMPG                          TEMP2

TEMPG                          TEMP3

sys@ORCL> alter user hr temporary tablespace tempg;

User altered.

sys@ORCL> conn hr/hr

Connected.

hr@ORCL> create table t as select * from dba_objects;

Table created.

hr@ORCL> begin

2        for i in 1..4

3        loop

4          insert into t select * from t;

5        end loop;

6        commit;

7      end;

8  /

PL/SQL procedure successfully completed.

hr@ORCL> create table tt as select * from t;

Table created.

分别打开两个session以用户hr登录对表t和tt同时进行排序,之后通过如下查询监视对临时表空间的使用情况

sys@ORCL> select operation_type ,sql_id , tablespace,tempseg_size,number_passes from v$sql_workarea_active;

OPERATION_ SQL_ID        TABLESPACE                    TEMPSEG_SIZE NUMBER_PASSES

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

SORT (v2)  b7q3tuybvatbt    temp1                                          0

SORT (v2)  cn7ucn092pg8s    temp3                                          0

sys@ORCL> select sql_text from v$sql where sql_id in (select sql_id from v$sql_workarea_active);

SQL_TEXT

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

select object_id from t order by object_id desc

select object_id from tt order by object_id desc

发现来自同一用户hr的不同session同时排序时使用了同一临时表空间组内的不同临时表空间

这样大大减少了之前同一用户只能使用一个临时表空间而产生的请求临时段的等待时间

oracle内存表与临时表,Oracle 临时表之临时表空间组(TTG)相关推荐

  1. oracle 内部表连接方式,ORACLE 表连接方式

    一表的连接 表的连接是指在一个SQL语句中通过表与表之间的关联,从一个或多个表检索出相关的数据.连接是通过SQL语句中FROM从句的多个表名,以及WHERE从句里定义的表之间的连接条件来实现的.如果一 ...

  2. oracle 内部表连接方式,oracle表连接方式

    ORACLE表连接方式及常见用法(二) /2010-12-22 13:30:13 /个人分类: 一 引言 数据仓库是目前已知的比较成熟和被广泛采用的解决方案,用于整合电信运营内部所有分散的原始业务数据 ...

  3. oracle添加表的索引,oracle批量添加指定表前缀的索引SQL语句

    oracle批量添加指定表前缀的索引SQL语句 需要输入用户名,表空间,索引个数,表名前缀,过滤的表名后缀 ##需要输入用户名,表空间,索引个数,表名前缀,过滤的表名后缀 declare --用户名 ...

  4. oracle提示表名无效,ORACLE提示表名无效

    在创建ORACLE数据库时,创建表 提示表名无效 请查看数据库表名是否出现了小写字母或者关键字,如USER- [问题描述]在使用 SQL Server 2008 r2 时,有时在完成SQL书写后,会提 ...

  5. oracle两表联查分组,oracle解决多表关联分组查询问题

    做了一个功能需要分组查询,同时查询A表分组查询的ID需要关联B表的数据,本来想两个表关联查询,但是报group by 语法不正确.所以做了以下修改. select count(*), cindexid ...

  6. oracle建表加compress,oracle 建表后添加表注释及字段注释

    oracle添加表注释和表字段注释 创建Oracle数据库表时候加上注释 CREATE TABLE t1( id  varchar2(32) primary key, name VARCHAR2(8) ...

  7. oracle锁表怎么解决,Oracle锁表问题的简捷处理技巧

    在开发Oracle数据库时,我们常遇到频繁操作的Oracle数据表,会出现Oracle锁表.现在就针对这一问题,提下个人的解决Oracle锁表的技巧. 首先问题分析: (1)锁的分析 ORACLE里锁 ...

  8. 建oracle簇表,详解ORACLE簇表、堆表、IOT表、分区表

    详解ORACLE簇表.堆表.IOT表.分区表 簇和簇表 簇其实就是一组表,是一组共享相同数据块的多个表组成.将经常一起使用的表组合在一起成簇可以提高处理效率. 在一个簇中的表就叫做簇表.建立顺序是:簇 ...

  9. oracle建表备份数据,oracle建表备份脚本,如果update的数据不对,可以从WEB_RI_PLYEDR_CED_BAK找回...

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. --oracle建表备份脚本,如果update的数据不对,可以从WEB_RI_PLYEDR ...

最新文章

  1. 基于FPGA的通用8251串行异步收发器(6600+字)
  2. 【CV秋季划】图像质量提升与编辑有哪些研究和应用,如何循序渐进地学习好?...
  3. 504 Gateway Time-out错误的解决方法
  4. 使用系统规则测试System.in和System.out
  5. 【51Nod - 1272 】最大距离 (思维,排序sort的空间优化)
  6. 从UDP/TCP到HTTP/HTTP2,弄清楚网络层面上应该了解的知识。
  7. Hibernate 多表关联
  8. 关于FileSystemWatcher监听文件创建
  9. sqlite的编译、练习
  10. SAP License:利润中心设计思路
  11. php和python-php跟python
  12. arcgis api for flex 开发入门(七)Geometry service 的使用
  13. Migrate Project to Gradle? This project does not use the Gradle build system
  14. 【OpenCV 例程200篇】201. 图像的颜色空间转换
  15. NDK之FFmpeg视频解码
  16. 3000款课件培训PPT模板免费下载网站
  17. 快速解决Springboot打包完项目jar包后遇到的问题(1):“Error java: 程序包xxx不存在。
  18. Numpy创建正态分布和均匀分布
  19. 你不知道的云南隐藏景点_我是亲民_新浪博客
  20. 出现错误“0x7c938fea指令引用的0x00000010内存。该内存不能为written。”的另一种可能性

热门文章

  1. layui常用的表单标签_Layui常用组件:表格(table)
  2. mysql镜像远程连接_docker 创建mysql镜像,并成功进行远程连接
  3. java方法重载和重载方法_我们可以在Java中重载main()方法吗?
  4. 带有示例的Python列表reverse()方法
  5. 面试官:重写 equals 时为什么一定要重写 hashCode?
  6. 废弃fastjson!大型项目迁移Gson保姆级实战
  7. 附录:更多字典操作命令
  8. 实战:Redis 主从同步
  9. 计算机组成原理和体系结构----软考(到处copy)
  10. C#中利用Linq.Dynamic实现简单的动态表达式构建查询