Oracle 的逻辑结构 ( 表空间、段、区间、块 ) ——段
数据段是一系列区间 , 在这个特定逻辑存储结构存储的数据都在一个表空间内 . 例如对于每一种数据库 对象 ( 表、索引 ) ,数据库都会分配一个或一段区间构成其对象的数据段。
A segment is a set of extents that contains all the data for a specific logical storage structure within a tablespace. For example, for each table, Oracle allocates one or more extents to form. that table’s data segment, and for each index, Oracle allocates one or more extents to form. its index segment
数据段
Oracle 数据库中,一个独立的数据段保存以下所有情况的数据:
l  一个非分区表或非簇的表
l  分区表的一个分区
l  表的一个簇
当使用 Create 语句创建表或簇的时候, Oracle 会自动创建该数据段。
表或簇的存储参数决定了该数据段的区间如何分配。存储参数也影响了与该对象相关的数据段的存储和数据的查询。
索引段
Oracle 数据库中每一个非分区索引都有一个对应的单一的索引段用来保存所有数据。对于分区索引而言,每一个分区都有一个单一的索引短。
当执行Create Index 语句,Oracle 就会创建相应的索引段。在创建索引的时候同样也可以指定相应的存储参数。设置这些参数将会直接影响到数据查询和存储的效率。
临时段
处理查询的时候,对于 SQL 语句的解析和执行阶段 Oracle 经常需要临时工作区。 Oracle 字段分配的磁盘空间就叫临时段。例如, Oracle 需要一个临时段作为排序工作区。如果排序操作可以在内存进行或者 Oracle 可以直接使用索引的话, Oracle 就不会创建这个临时段。
以下语句有时会需要使用临时段:
l  CREATE INDEX
l  SELECT ... ORDER BY
l  SELECT DISTINCT ...
l  SELECT ... GROUP BY
l  SELECT ... UNION
l  SELECT ... INTERSECT
l  SELECT ... MINUS
自动回滚( 撤销) 段
自动回滚 ( 撤销 ) 段管理 是基于 undo 表空间的,取代了原来的人工分配回滚段的方式。
自动撤销段管理允许你显式的控制 undo retention(undo 保留时间 ) ,通过 UNDO_RETENTION 系统参数,可以指定在数据库中已提交的 undo 信息所保留的量。通过控制 retention ,你可以配置你的系统以确保长期运行的查询能够运行成功。
Oracle 用 V$UNDOSTAT 视图来监控和配置你的数据库系统以确保 undo 空间高效使用。
UNDO Retention 控制
长时间运行的查询有时会失败,因为对于所需的一致性读操作的 undo 信息已不再可用。这通常发生在已提交的 undo 数据块被活动事务给覆盖了。
自动撤消管理为 undo 空间何时重用提供了一种显式的控制方法,也就是 undo 信息能够保留多久。 DBA 可以用 UNDO_RENTENTION 参数指定保留时间。例如,如果 UNDO_RETENTION 设置为 30 分钟,那么系统中所有已提交的 undo 信息将至少保留 30 分钟。这样就可以确保所有运行小于等于 30 分钟的查询,在通常情况下,不会碰到 ”snapshot too old” 的 Oracle 错误。
你可以在数据库启动时设置 UNDO_RETENTION 或者通过 ALTER SYSTEM 语句改变改变设置。下面的例子为设置 retention 为 20 分钟:
ALTER SYSTEM SET UNDO_RETENTION = 1200 ;
如果没有设置 UNDO_RETENTION 参数的话, Oracle 会使用一个基于多数 OLTP 系统预置的缺省值,通常情况下查询时间不会很长。
Oracle 提供如下为新数据库设置撤销保留时间间隔的指导:
1 、  OLTP 系统: 15 分钟
2 、   混合: 1 小时
3 、  DSS 系统: 3 小时
4 、   闪回查询: 24 小时
表与段的关系
如何查找一个表所对应的所有段
包含 4 个部分
-- 普通表段 , 对于分区表每个区对应一个分区段
--BLOB 段 , 普通表每个 BLOB 字段一个段;分区表每个分区一个 BLOB 段
--BLOB 索引段,同上
-- 普通索引段,全局索引每个索引一个段;分区索引每个索引则一个段
测试 :创建一个带 BLOB 字段的分区表
create table TESTPARTITION
(
A VARCHAR2(10),
B VARCHAR2(10),
C BLOB
)
partition by list (A)
(
partition PARTA values ('A'),
partition PARTB values ('B')
);
创建一个全局索引和局部索引
CREATE INDEX INDTESTPARTITIONGLOBAL_B ON TESTPARTITION(b); 
CREATE INDEX INDTESTPARTITIONLOCAL_A ON TESTPARTITION(A) local
(
partition part_A tablespace AUTOALLOCATE,
partition part_B tablespace AUTOALLOCATE
);
查询该表所有的段
SELECT A.SEGMENT_NAME TABLE_NAME,'N/A' COLUMN_NAME,A.SEGMENT_NAME,'TABLE' SEGMENT_TYPE,A.HEADER_FILE,A.HEADER_BLOCK,A.BYTES
FROM DBA_SEGMENTS A                        --LOCAL SEGMENT
WHERE A.segment_name='TBLTESTSEGMENT'
UNION ALL
select A.TABLE_NAME,A.COLUMN_NAME,B.SEGMENT_NAME,B.SEGMENT_TYPE,B.HEADER_FILE,B.HEADER_BLOCK,B.BYTES
from DBA_LOBS A,DBA_SEGMENTS B             --LOB SEGMENT
where A.SEGMENT_NAME=B.SEGMENT_NAME AND A.TABLE_NAME='TBLTESTSEGMENT'
UNION ALL
select A.TABLE_NAME,A.COLUMN_NAME,B.SEGMENT_NAME,B.SEGMENT_TYPE,B.HEADER_FILE,B.HEADER_BLOCK,B.BYTES
from DBA_LOBS A,DBA_SEGMENTS B              --LOB INDEX SEGMENT
where A.INDEX_NAME=B.SEGMENT_NAME AND A.TABLE_NAME='TBLTESTSEGMENT'
UNION ALL
select A.TABLE_NAME,A.INDEX_NAME,B.PARTITION_NAME,B.SEGMENT_NAME,B.SEGMENT_TYPE,B.HEADER_FILE,B.HEADER_BLOCK,B.BYTES
from DBA_INDEXES A,DBA_SEGMENTS B          --INDEX SEGMENT
where A.INDEX_NAME=B.SEGMENT_NAME AND A.TABLE_NAME='TESTPARTITION'

深度理解 Oracle10g 中 UNDO_RETENTION 参数的使用
http://blog.csdn.net/seagal890/archive/2008/10/09/3044226.aspx
深入学习 分区表及分区索引
http://space.itpub.net/7607759/viewspace-260278
本文转自baoqiangwang51CTO博客,原文链接: http://blog.51cto.com/baoqiangwang/312711 ,如需转载请自行联系原作者

不胜人生一场醉数据库正文 Oracle的逻辑结构(表空间、段、区间、块)——段...相关推荐

  1. 追梦五年——不胜人生一场醉

    追梦五年--不胜人生一场醉 值此 51CTO 五周年之际,终于有机会静下心来回顾和总结一下过去的 5 年的 IT 生涯. 从民营到外企再回归民营,从 IT 工程师到项目经理再回归到 IT 工程师,从起 ...

  2. 不胜人生一场醉入住新家和感言!

    不胜人生一场醉入住新家和感言! 这是最好的时代,这是最坏的时代: 这是智慧的时代,这是愚蠢的时代: 这是信仰的时期,这是怀疑的时期: 这是光明的季节,这是黑暗的季节: 这是希望之春,这是失望之冬: 人 ...

  3. Oracle的逻辑结构(表空间、段、区间、块)——Oracle数据块(一)

    Oracle 的逻辑结构 ( 表空间.段.区间.块 ) --块 Oracle 存储数据的最小单位是数据块.Oracle 管理 数据库 数据文件的存储空间被称为数据块,一个数据块是数据库使用的最小数据单 ...

  4. oracle中区间大小,Oracle的逻辑结构(表空间、段、区间、块)——总结

    Oracle逻辑结构全景结构图 以下为个人整理的一些关于Oracle逻辑结构的相关数据字典: SELECT * FROM DBA_TABLESPACES--记录各个表空间的详细信息 SELECT * ...

  5. sql server 博客:不胜人生一场醉

    http://blog.csdn.net/baoqiangwang/article/category/604358 转载于:https://www.cnblogs.com/zengkefu/p/695 ...

  6. SQL Server 2008存储结构----不胜人生一场醉

    http://blog.csdn.net/baoqiangwang/article/category/604358 转载于:https://www.cnblogs.com/zengkefu/p/698 ...

  7. [Oracle]理解undo表空间

    [Oracle]理解undo表空间 一.回退段介绍 在Oracle数据库中,当某个事物对数据进行修改时,Oracle首先将数据的原始值保存到一个回退段中.一个事物只能将它的回退信息保存到一个回退段中, ...

  8. oracle rman恢复表空间,Oracle数据库RMAN恢复之表空间和数据块介质的恢复

    示例一:表空间的数据文件被误删除 open状态下删除表空间对应的所有数据文件. 在open状态下使用alter tablespace ... offline for recover 脱机表空间. 使用 ...

  9. Oracle数据库迁移:异构传输表空间TTS HP-UX迁移至Redhat Linux 7.7

    墨墨导读:本文来自墨天轮用户"你好我是李白"的投稿,记录一个Oracle数据库迁移过程 :异构传输表空间TTS HP-UX迁移至Redhat Linux 7.7.墨天轮主页:htt ...

最新文章

  1. (原創) 為什麼企業研發喜歡找研究生? (日記)
  2. #100天计划# 2013年10月14日
  3. centos7 搭建vsftpd服务并锁定用户的家目录
  4. C/C++数组指针和指针数组
  5. 数据库服务器的文件结构6,以下数据库服务器的文件结构
  6. 报错,npm ERR! code ENOLOCAL
  7. spark 把一列数据合并_Spark DataFrame列的合并与拆分
  8. 两次DFS,POJ(1481)
  9. 在 Oracle 中使用正则表达式
  10. JAVA视频MP4文件加密,Html5播放器调用
  11. 地面波天线怎样能多收台_教你怎样挑选DTMB地面波天线
  12. 华为机试HJ70:矩阵乘法计算量估算
  13. 传统推荐模型——协同过滤
  14. 等待页面所有图片加载完毕
  15. 在地址栏直接使用Google“手气不错”功能
  16. [RK3288][Android6.0] 调试笔记 --- WiFi芯片AP6356S添加
  17. 【供应链】全面分析供应链类型
  18. JavaScript【图片轮播】
  19. [Linux]在Linux上部署Java开发环境笔记(一)-- 补充:Linux下如何手动设置IP及配置DNS服务
  20. GFlags 使用详解

热门文章

  1. B - Magical Subsequence
  2. ARP协议工作原理及ARP欺骗(中间人攻击)
  3. 《ICASSP 2021 DEEP NOISE SUPPRESSION CHALLENGE: DECOUPLING MAGNITUDE ANDPHASE OPTIMIZATION WITH A TW》
  4. ARAIM高级接收机自主完好性监测算法
  5. Python_从零开始学习_(52) 飞机大战_发射子弹
  6. 计算机应用城市轨道交通,计算机应用-201402-城市轨道交通系统运行仿真平台的设计与实现.pdf...
  7. 《数据结构基础知识②》--单循环链表+双向链表+时间效率+比较
  8. 10种经典的错误提示信息
  9. javascript之内嵌函数javascript
  10. 微软开源AI修图工具让老照片重现生机