`
sanmao6139
  • 浏览: 2940 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Oracle逻辑结构

 
阅读更多


        方案(schema)是一个逻辑数据结构的集合。每个数据库用户拥有一个与之同名的方案,且只有这一方案(详情请见concepts第5章)。

        数据库逻辑结构为数据块(Data Block)、数据扩展(Extent)、和段(Segment); 物理结构为数据文件。

        Block是最精细的数据存储粒度,一个数据块相当于磁盘上一段连续的物理存储空间,oracle每次访问数据的单位是block。

        Extent是为存储数据而分配的一组连续的block,只能在一个数据文件中。

        Segment则是由一个或多个Extent。一张表可以看做是一个段,一个索引可以做作是一个段。查看段的分类select distinct segment_type from user_segments 。可以跨数据文件。

        数据逻辑上存储表空间(Tablespace)中,而物理上则存储于属于表空间的数据文件(data file)中。



 

表空间管理

•字典管理
依赖数据字典表来跟踪空间使用(已经过时)
•本地管理(默认)

使用位图(而不是数据字典表)来跟踪使用和空闲空间

 

在表空间本地管理的情况下,Oracle先在表空间第一候选的 数据文件上寻找可以分配给第一个区段的空间,然后查看数据文件的位图来查看是否有足够数目的空闲块。如果数据文件没有足够的空闲块,然后Oracle会转向新的数据文件。

 

段空间分配方式

Uniform

•对于统一大小区段,你可以指定区段大小或者使用默认大小,默认大小为1M。根据给定的块大小,要保证每个区段至少包含5个数据块。临时表空间管理区段的方式只能采取这种方式。

AUTOALLOCATE

对于系统管理的区段,Oracle确定新增区段的最优大小,最小区段的大小是64K。如果表空间创建包括“segment space management auto”,如果数据库块大小是16k或者更高,然后Oracle管理段创建区段的最小尺寸是1M。这是持久表空间的默认管理方式。

 

select * from dba_segments where owner='表名';

 

表中的段分配

 

  一个表在创建之后,除非进行truncate,否则数据库段中分配的所有数据块都只属于这个表。Oracle在一个块有足够空间的情况下插入新行。甚至你删除了表的所有行,Oracle也不会释放数据块,表空间的其他对象也无法使用这些数据块。

索引的段分配

 

  只要索引存在,索引段中的所有区段都属于索引段。当你删除(drop)索引或者相关的表时,Oracle释放区段,本表空间的其他对象可以使用这部分空间。

临时段的段分配

 

  当Oracle执行完一个需要临时段的语句时,Oracle自动删除临时段。如果排序操作能够在内存中进行,Oracle不会创建这个段。

回滚段的段分配

 

  Oracle周期性的检查数据库的回滚段,来检查是否超过了它们的最优尺寸。如果回滚段远大于最优尺寸(也就是说,有太多的区段),然后Oracle会自动从回滚段中释放一个或者多个区段。

 

区的大小?

在我们默认的本地管理表空间中,extent是通过bitmap位图块来管理,Oracle通过内部的算法来自动决定下一个extent的大小

事例:

create table t(id number);
select * from user_extents where segment_name='T'drop table t purge;
create table t as select * from dba_objects;
select * from user_extents where segment_name='T'

区是用来管理表,因为block粒度太小,一个表就是一个段。

 

总结

1.数据库有一个或多个表空间组成。
2.表空间有一个或多个数据文件组成。
3.段(TABLE、INDEX)有一个或多个区段组成。段在表空间中,但是可以包含这个表空间中多个数据文件中的数据。
4.区段是磁盘上一组逻辑连续的块。区段只在一个表空间中,而且总是在改表空间内的一个文件中。

 

5.块是数据库中最小的分配单元,也是数据库使用的最小I/O单元。

 

 

 ---获取dump存放路径(user_dump_dest)

 show parameter dump;

--将文件添加一个头

alter session set tracefile_identifier = 'Look_For_Me';

--查询dump需要的file_id和block_id

select rowid,dbms_rowid.rowid_object(rowid) object_id,

dbms_rowid.rowid_relative_fno(rowid) file_id,

dbms_rowid.rowid_block_number(rowid) block_id,

dbms_rowid.rowid_row_number(rowid) num

from test where object_id =49;--主键id

--dump

alter system dump datafile 6 block 179;

 ----刷新buffer_cache

 alter system flush buffer_cache;

 --收集统计信息,这里没有收集直方图:

 SQL> exec dbms_stats.gather_table_stats(ownname=>'SYS',tabname =>'DAVE',estimate_percent => 10 ,method_opt =>'FORCOLUMNS size 1',degree=>10,cascade => true);

  • 大小: 164.6 KB
  • 大小: 42.8 KB
分享到:
评论

相关推荐

    oracle 逻辑结构

    帮你 轻松理解 oracle 逻辑结构 , 有图,有说明,让你对oracle的理解更加深入迁出。

    oracle逻辑结构分析

    oracle的逻辑结构包括表空间(tablespace),段(segment),区(extent),数据块(data block) oracle数据库在逻辑上是由多个表间组成的,表空间中存储的对象叫段,比如数据段,索引段,和回退段。段由区组成,区是磁盘...

    oracle 逻辑存储结构

    oracle 逻辑存储结构

    Oracle系列培训教程之五:逻辑结构

    ### Oracle逻辑结构详解 #### 一、概述 Oracle 数据库逻辑结构是理解并管理数据库的基础。本章节将详细介绍 Oracle 数据库中的几个核心概念,包括表空间、段、范围(extent)、数据块以及模式对象等,并深入探讨...

    oracle基本机构逻辑结构

    首先,Oracle数据库的逻辑结构包括了表空间和数据文件。表空间是数据库的逻辑划分,每个数据库至少有一个名为SYSTEM的表空间。表空间的主要目的是为了组织和管理数据,通过创建不同的表空间,可以将不同类型的数据...

    oracle9i逻辑结构,oracle9i逻辑结构

    Oracle 9i 逻辑结构是数据库管理系统的核心组成部分,它决定了数据如何在数据库中组织和管理。在Oracle 9i中,逻辑结构主要包括以下几个关键概念: 1. **数据库的逻辑结构**:Oracle数据库的逻辑结构是数据组织和...

    逻辑结构

    ### Oracle逻辑结构详解 #### 一、Oracle逻辑结构概述 Oracle数据库的逻辑结构是指数据库内部组织数据的方式。这种逻辑结构不仅决定了数据如何被存储和管理,还直接影响了数据的访问效率。理解Oracle数据库的逻辑...

    Oracle的逻辑结构、物理结构与实例.docx

    ### Oracle的逻辑结构、物理结构与实例 #### 一、Oracle的逻辑结构 Oracle数据库的逻辑结构是一种层次化的组织方式,主要包括以下组成部分: 1. **数据块(Data Blocks)** - **定义**:数据块是Oracle数据库中...

    Oracle9i数据库逻辑结构

    ### Oracle9i数据库逻辑结构详解 #### 一、引言 Oracle9i是甲骨文公司(Oracle Corporation)推出的一款关系型数据库管理系统(RDBMS),它在企业级应用中占据了非常重要的位置。本文将深入探讨Oracle9i数据库的逻辑...

    9-Oracle数据库逻辑结构.pptx

    Oracle 数据库逻辑结构 Oracle 数据库逻辑结构是指数据库的逻辑组织和管理,包括表空间、扩展区、段和数据块的概念及管理方法。 Oracle 的逻辑存储结构能够适用于不同的操作系统平台和硬件平台。 数据库逻辑结构...

    SqlServer表结构转oracle表结构

    8. **测试与验证**:完成表结构迁移后,必须进行充分的测试,确保新创建的Oracle表能够正常工作,所有业务逻辑和查询都能正确执行。 总的来说,SQL Server到Oracle的表结构转换涉及了数据库设计、编程和数据库管理...

    Oracle逻辑存储结构培训.pptx

    Oracle逻辑存储结构培训.pptx

    Oracle-100道选择题(附答案).docx

    Oracle 是一种广泛应用的关系数据库管理系统,在实际开发和应用中,了解 Oracle 的逻辑结构、用户管理、SQL 语句、函数和游标等知识点非常重要。以下是对 Oracle 选择题的解析: 1. Oracle 逻辑结构 Oracle 的...

    Oracle体系结构简介

    Oracle 体系结构是一个复杂而精细的设计,旨在提供高效、安全且可扩展的数据库管理解决方案。以下是对Oracle体系结构主要组成部分的详细说明: 1. **数据库**:数据库是Oracle的核心,它是一个逻辑数据集合,包含了...

    oracle逻辑导出脚本

    根据给定的文件信息,我们可以深入探讨Oracle逻辑导出脚本的关键知识点,这些知识点主要集中在Oracle数据库的逻辑备份过程、Shell脚本编程以及系统管理方面。 ### Oracle逻辑导出脚本概览 #### 标题解析:Oracle...

    Oracle体系结构概述

    总结来说,Oracle数据库的体系结构由物理结构和逻辑结构组成,通过数据库实例和进程协调工作,并依赖数据字典来管理和检索元数据。理解这个体系结构对于优化数据库性能、维护数据完整性和进行故障恢复至关重要。

Global site tag (gtag.js) - Google Analytics