2.4 段的概述

段由一组数据扩展构成,其中存储了表空间内各种逻辑存储结构的数据。
2.4.1 数据段的简介
    在oracle中,一个数据段可以供非分区表或非簇表、分区表的一个分区、一个簇表容纳数据。用户可以使用create or alter语句直接设定表或簇表的存储参数,存储参数将决定对应的数据段的数据扩展如何被分配,这些参数将会影响数据段的存储和访问效率。
    oracle为物化视图及其物化视图日志创建数据段的方式与表或簇表相似。
2.4.2 索引段的简介
    索引按照ORACLE官方文档的解释,应该是呈一个金字塔形状。从上到下,依次是:全局非分区索引索引,全局分区索引,本地分区索引。每个索引都会分配一个索引段来容纳数据。
     用户可以使用create index语句为索引或索引的分区创建索引段。在创建语句中,用户可以设定索引段的数据扩展的存储参数,以及此索引段应存储在哪个表空间中。
    所有的全局分区索引都属于前缀索引,本地索引才分为非前缀索引和前缀索引。非前缀本地索引特别适用于基于历史数据查询分析的数据库,因为历史数据都是使用时间来分区的;前缀本地索引适用于对分区主键进行索引,减少查询所搜索到的分区数目;全局前缀索引适用于对非分区主键进行索引;全局非前缀索引基本不用,因为对任何分区信息的修改都会导致索引失败。(此部分内容与网友有过讨论,欢迎指点)。
2.4.3 临时段的简介
    当oracle处理一个查询时,需要为SQL语句的解析与执行的中间结果准备临时空间。oracle会自动分配被称为临时段的磁盘空间。例如:在进行排序操作时就需使用临时段,当排序操作可以在内存中进行,或oracle设法利用索引就执行时,则无需创建临时段。
2.4.3.1 需要使用临时段的操作
    以下语句的执行过程中可能会使用临时段:
    ∴  create index
    ∴  select ... order by
    ∴  select distinct ...
    ∴  select ... group by
    ∴  select ... union
    ∴  select ... intersect
    ∴  select ... minus
    ∴  有些不能使用索引的关联操作,或者需要在子查询间建立相互关系,也可能需要使用临时段,所以当查询包含distinct,group by,order by子句时,有可能使用两个临时段。
2.4.3.2 临时表及其索引使用的段
    oracle可以为临时表及其索引分配临时段,临时表中的数据只在会话或事务的运行期内存在。
2.4.3.3 临时段如何被分配
2.4.3.3.1 为查询分配临时段
    在用户会话(session)期间,如果用户需要,oracle可以在用户的临时表空间内为用户创建临时段。管理员可以使用create user or alter user语句中的temporary table space子句指定用户默认使用的临时表空间,用户默认使用的永久表空间也可以同时被设定为临时表空间。如果没有指定临时表空间,则默认为system。当system表空间是本地管理的,用户必须在创建数据库的同时定义一个默认的临时表空间。本地管理的system不能用于默认的临时表空间。
    因为临时段的分配与回收经常发生,所以有必要为创建临时段准备一个专用的表空间,这样可以分流DISK设备的I/O,也可以减少由于在SYSTEM或其他表空间内频繁创建临时段而造成的碎片。
    排序等操作引起的临时段内的数据变化不记录到重做日志中。
2.4.3.3.2 为临时表及临时索引分配临时段
    当用户使用insert,或者create table as select 语句向一个临时表插入数据时,oracle将为这个临时表及其索引创建和分配临时段,同时创建所有的LOB段,临时表的段存储在创建者的临时表空间中。当事务或者会话结束时,oracle负责移除(drop)属于此事务或会话的临时表使用的段。但如果其他的会话或事务也在使用此临时表,则此段将继续保存数据。
2.4.4 自动撤销管理简介
    Oracle中保存了用户恢复对数据库操作的信息。oracle可以利用这种被称作撤销信息的信息来完成回滚(rollback),恢复(recover),实现读完整性,恢复语句的逻辑错误的操作。自动撤销管理是基于撤销表空间的,用户使用撤销表空间管理撤销信息,而不必创建多个大小不一的回滚段。
    Oracle强烈建议用户使用撤销表空间,避免使用回滚段。系统能够自动调整撤销信息在撤销表空间内的保存时间,供需要使用撤销信息的查询使用。如果正在使用的撤销表空间内的保存时间,供需要使用撤销信息的查询使用。
    用户可以使用V$UNDOSTAT视图来监视撤销空间的使用情况,并对其进行配置以提高效率。Oracle已取消手动撤销管理模式(使用回滚段来存储撤销信息)
    可以参见: http://www.databasejournal.com/features/oracle/article.php/10893_3416901_1
2.4.4.1 撤销管理模式
    用户通过设定撤销管理模式就可以灵活的选择使用手动撤销管理或自动撤销管理。数据库系统既可以运行在手动撤销管理模式下,也可以运行于自动撤销管理模式下。如果用户使用自动撤销管理模式,DBA只需要为每个实例创建一个撤销表空间,并将初始化参数UNDO_MANAGEMENT设为Auto即可。
2.4.4.2 撤销空间配额
    在自动撤销管理模式下(automatic undo management),为事务提供撤销段及为此段分配空间的工作完全由数据库系统空间。然后一个存在问题的事务有可能消耗大量的撤销空间。设置导致整个系统瘫痪。在资源管理器(Resource Manager)中可以设置UNDO_POOL参数,从而以更直接的方式控制大事务的管理。DBA可以将用户编为消费者组,并为每个组设定最大撤销空间限制。当一个组超过其限制值时,这个组的用户就不能执行新的更新操作,知道本组其他用户结束事务并释放撤销空间。
 UNDO_POOL 参数的默认值是 UNLIMITED,即用户可以使用整个撤销表空间(undo tablespace)来存储其撤销信息。数据库管理员也可以使用 UNDO_POOL 参数对每一个用户进行限制。
2.4.4.3 自动撤销信息保存周期管理
    Oracle 10g 数据库自动地调整用于控制撤销信息保存周期(undo retention period)的参数。撤销信息保存周期是指,撤销表空间中旧的撤销信息(即已提交事务的撤销信息)在被覆盖之前至少需要被保存的时间。数据库会收集撤销信息的使用情况,并根据统计结果及撤销表空间(undo tablespace)的大小对撤销信息保存周期进行调整。当数据库处于自动撤销管理(automatic undo management)模式下,其撤销信息保存周期的调整规则如下:
    对于存储参数为autoextend的撤销表空间,如果空间情况允许,数据库将撤销信息保存周期设为比系统中最长的查询时间稍长。此外,如果空间情况允许,系统设定的撤销信息保存周期不会低于Undo_Retention初始化参数。
    对于固定容量的撤销表空间,数据库将撤销信息保存周期设为撤销表空间所支持的最大值。这意味着数据库可以使用接近撤销表空间极限的容量为用户提供最长的撤销信息保存周期。
    撤销信息保存周期的自动调整不使用于LOB数据,LOB列的撤销信息保存周期由Undo_retention参数决定。
    当一个固定容量的撤销表空间(undo tablespace)与一个自动扩展的撤销表空间(存储参数为 AUTOEXTEND)容量相同时,前者使用的撤销信息保存周期(undo retention period)调整方法通常能够提供更长的保存时间。这使回闪(flashback)操作可以追溯的更远,也使运行时间长的查询有更多的撤销数据(undo data )可用。
2.4.4.4 外部视图
    用户可以使用 V$TRANSACTION 及 V$ROLLSTAT 视图监控事务(transaction )及撤销空间(undo)的信息。对于自动撤销管理(automatic undo management)模式,V$ROLLSTAT 视图能够展现自动撤销管理所使用的各个撤销段(undo segment)的情况。V$UNDOSTAT 可以显示撤销空间运行的历史统计信息。用户可以查询撤销空间使用率(undo consumption rate),事务并发性(transaction concurrency),实例中最长的查询的运行时间等统计信息。通过这个视图,用户可以更好地估计在当前工作负荷下系统所需的撤销空间(undo space)容量。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10356975/viewspace-680359/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10356975/viewspace-680359/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值