Oracle存储结构_表空间

表空间是多个数据文件的集合。

SQL> select * from dba_tablespaces;


SQL> select TABLESPACE_NAME  from  dba_tablespaces;

TABLESPACE_NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
TEMP
USERS

SYSTEM、SYSAUX必须同时存在,不然数据库不能启动。


数据库、表空间、段、区、块
Oracle表空间
    普通表空间
    回滚表空间
    临时表空间
Oracle段
    表段、表分区段、索引段、索引分区段、临时段、撤销段、二进制大对象段
Oracle区
    高水位线(对表进行全表扫描的终点)

    删除数据不会降低高水位线。还需要 TRUNCATE TABLE t2;

Oracle块
        Oracle块物理存储结构
        行链接
        行迁移

    文件系统块:dumpe2fs /dev/sda1
    扇区:512字节

块头:块头包含段类型(如表或索引)、数据块地址、表目录、行目录和事务 

处理插槽。每个插槽的大小为23 字节,修改块中的行时会使用这些插槽。块头 
按从上向下的方向扩展。 
行数据:这是块中行的实际数据。行数据空间按从下向上的方向扩展。 
 空闲空间:空闲空间位于块的中间。这样可以根据需要扩展头和行数据空间。 
插入了一些新行之后,或者使用较大值更新了现有行的某些列之后,行数据就会 
占用空闲空间。如果行目录需要更多的行条目,或者需要的事务处理插槽数多于 
最初配置的数目,就会出现头扩展。最初,块中的空闲空间是相邻的。但是, 
删除和更新操作可能会导致在块空闲空间中产生碎片。必要时Oracle 服务器会 
接合块中的空闲空间。 
 
行目录(Row Directory):如果块中有行数据存在,则,这些行的信息将被记录在行目录中。这些信息包括行的地址等

通过EM来演示区和段的管理方式
select *  from dba_segments
select * from dba_users


区管理方式
    数据字典
    本地 区分配1、自动 2、 统一


段管理方式
    手工管理方式

    自动管理方式

CREATE SMALLFILE TABLESPACE "DATA1"
DATAFILE '/u01/app/oracle/oradata/jiagulun/data1_01.dbf' SIZE 100M REUSE
AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED
LOGGING
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO

1、段如何分配区

2、段有区以后如何使用空闲空间


select segment_name,blocks,extents,bytes,segment_type,tablespace_name from
dba_segments where segment_name='T2';

SEGMENT_NAME        BLOCKS    EXTENTS      BYTES SEGMENT_TYPE       TABLESPACE_NAME

T2                                          8          1                                65536 TABLE              USERS


附录(分析):
analyze table tablename compute statistics;
analyze table tablename compute statistics for all indexes;
analyze table tablename delete statistics

统计分析

SQL>  exec dbms_stats.gather_table_stats('SCOTT','EMP');

PL/SQL procedure successfully completed.

SQL>

表的统计信息:
包含表行数,使用的块数,空的块数,块的使用率,行迁移和链接的数量,pctfree,pctused的数据,行的平均大小:
 
SELECT table_name,NUM_ROWS, --表中的记录数
BLOCKS, --表中数据所占的数据块数
EMPTY_BLOCKS, --表中的空块数
AVG_SPACE, --数据块中平均的使用空间
CHAIN_CNT, --表中行连接和行迁移的数量
AVG_ROW_LEN --每条记录的平均长度
FROM USER_TABLES where table_name='T2'


索引列的统计信息   
包含索引的深度(B-Tree的级别),索引叶级的块数量,集群因子(clustering_factor), 唯一值的个数。

SELECT BLEVEL, --索引的层数
    LEAF_BLOCKS, --叶子结点的个数
    DISTINCT_KEYS, --唯一值的个数
    AVG_LEAF_BLOCKS_PER_KEY, --每个KEY的平均叶块个数
    AVG_DATA_BLOCKS_PER_KEY, --每个KEY的平均数据块个数
    CLUSTERING_FACTOR --群集因子
FROM USER_INDEXES

列的统计信息  
包含 唯一的值个数,列最大小值,密度(选择率),数据分布(直方图信息),NUll值个数

SELECT NUM_DISTINCT, --唯一值的个数
    LOW_VALUE, --列上的最小值
    HIGH_VALUE, --列上的最大值
    DENSITY, --选择率因子(密度)
    NUM_NULLS, --空值的个数
    NUM_BUCKETS, --直方图的BUCKET个数
    HISTOGRAM --直方图的类型
FROM USER_TAB_COLUMNS


SQL> desc dba_extents
 Name                                                              Null?    Type
 ----------------------------------------------------------------- -------- --------------------------------------------
 OWNER                                                                      VARCHAR2(30)
 SEGMENT_NAME                                                               VARCHAR2(81)
 PARTITION_NAME                                                             VARCHAR2(30)
 SEGMENT_TYPE                                                               VARCHAR2(18)
 TABLESPACE_NAME                                                            VARCHAR2(30)
 EXTENT_ID                                                                  NUMBER
 FILE_ID                                                                    NUMBER
 BLOCK_ID                                                                   NUMBER
 BYTES                                                                      NUMBER
 BLOCKS                                                                     NUMBER
 RELATIVE_FNO                                                               NUMBER

SQL>


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值