zoukankan      html  css  js  c++  java
  • oracle 表空间

    物理结构
    
    
    
    逻辑结构
    
    数据库 -> 表空间 -> 段 -> 区 -> 块
    
    先通过一个简单的例子,形象的展示一下上面这几个逻辑结构的关系
    
    1、创建表空间:
    SQL> create tablespace tb1 datafile '/ora/ora10g/data/tab_data1.dbf' size 100m;
    Tablespace created.
    
    2、已经看到了表空间TB1
    SQL> select ts#,name from v$tablespace;
    
           TS# NAME
    ---------- ------------------------------
         0 SYSTEM
         1 UNDOTBS1
         2 SYSAUX
         4 USERS
         3 TEMP
         6 EXAMPLE
         7 TB1
    
    3、再创建表,观察段与表空间的关系
    SQL> create table status
      2  (no varchar2(5) primary key,
      3  name varchar2(10) null)
      4  tablespace tb1;
    
    4、此时查看dba_segments,很直接的就看到上面创建的表与主键索引的段
    
    SQL> col owner for a10;
    SQL> col segment_name for a12;
    SQL> col segment_type for a12;
    SQL> col tablespace_name for a15;
    SQL> select owner,segment_name,segment_type,tablespace_name from dba_segments
      2  where tablespace_name='TB1';
    
    OWNER       SEGMENT_NAME  SEGMENT_TYPE TABLESPACE_NAME
    ---------- ------------  ------------ ----------
    SYS       STATUS        TABLE          TB1
    SYS       SYS_C005425   INDEX          TB1
    
    由此可看到:
    a) 表空间可包含多个段,即 表空间 -> 段
    b) 段有所有者、名称、类型等属于,而且从后面的情况来看,这些属性都跟他对应的对象相同
    c) 所以有时段与对象概念可互换
    
    
    5、同时也可查到段所对应的对象,可以对象名称、类型、所有者与段相同
    
    SQL> col object_type for a12;
    SQL> col object_name for a12;
    SQL> col object_id for a12;
    SQL> col data_object_id for a12;
    
    SQL> select object_type,object_name,object_id,data_object_id from user_objects 
    where object_name in ('STATUS','SYS_C005425');
    
    OBJECT_TYPE  OBJECT_NAME   OBJECT_ID DATA_OBJECT_ID
    ------------ ------------ ---------- --------------
    TABLE         STATUS       52593     52593
    INDEX         SYS_C005425   52594     52594
    
    区间的定义: 磁盘在使用过程中,IO对磁盘的写不仅只有数据库,还有其他程序,所以无法保证
                所有数据地址都是连续的,所以便有了区间这个逻辑集合,它将不连续的数据地址
                用连续的区间来存储,因为区间分配的连续性是oracle所能保证的,
    
    6、通过dba_extents可看到段与区间的关系
    a) 由于只是创建的测试表,也没任何数据,空间需求很小,所以这里看到段只有一个区间
       但实际上段与区间是一对多的包含关系,但一个区间只能属于一个段
    
    SQL> SELECT owner,segment_name,extent_id,file_id,block_id,bytes,blocks FROM DBA_EXTENTS where tablespace_name='TB1';
    
    OWNER       SEGMENT_NA  EXTENT_ID    FILE_ID   BLOCK_ID        BYTES     BLOCKS
    ---------- ---------- ---------- ---------- ---------- ---------- ----------
    SYS       STATUS           0      6         9        65536       8
    SYS       SYS_C005425           0      6        17        65536       8
  • 相关阅读:
    git clone GitLab 工程报错Repository not found
    vue + Element-ui 实现分页
    Element-ui 实现table的合计功能
    python 使用UUID库生成唯一ID
    css 设置overflow:scroll 滚动条的样式
    下载css-loader 安装及使用
    vue实现首页导航切换不同路由的方式(二)【使用vuex实现的】
    vue实现随机验证码功能
    vue实现首页导航切换不同路由的方式
    vue实现菜单切换
  • 原文地址:https://www.cnblogs.com/doclaim/p/3141522.html
Copyright © 2011-2022 走看看