大数据专题—数据块分配回收及优化建议

本文探讨了Oracle数据库中数据块、数据扩展和段的分配与回收,重点在于Oracle如何根据表空间管理方式动态分配数据扩展。文章介绍了段顾问(Segment Advisor)在确定可回收空间中的作用,并提出在数据仓库环境中,通过合理设置存储参数、使用本地管理表空间和定期重构索引来优化性能。
摘要由CSDN通过智能技术生成

     /**
     * Title:
     * author:derwee
     *email:daoweiyy@163.com
     * Version: V1.0
    */

基于oracle DBMS单实例环境。本次实验还是基于看到资料和个人理解,暂时还无法深入跟踪oracle内部实现过程,具体的实现算法。只考究oracle中相对简单的堆表中数据块,数据扩展,段的分配和回收,暂时不管簇表,索引,回滚段,物化视图,空间不连续情况下,如何分配。更精确的数量关系待折腾了。

 1.1      数据块,数据扩展,段简介

  Oracle存储数据的最小粒度(finest level ofgranularity)被称为数据块(datablock)(也叫做逻辑块(logicalblock),Oracle块(Oracle block)或页(page))。一个数据块对应于磁盘上数个字节(byte)的物理数据库空间。往往对应着操作系统的文件系统的2的倍数个数据块。

处于数据块之上的逻辑数据库空间是数据扩展(extent)。数据扩展是为存储数据而分配的一组连续的数据块。

位于数据扩展之上的逻辑数据库存储结构是段(segment)。段由一组数据扩展 (extent)构成,这些数据扩展位于同一表空间(tablespace)中,用于存储各种逻辑数据结构。包括数据段和索引端。



1.2      Oracle的空间分配回收

Oracle为段(segment)分配空间时以数据扩展(extent)为单位。当段内已有的数据扩展没有可用空间时,Oracle为此段分配一个新的数据扩展。因为数据扩展是随需分配的,所以一个段内的数据扩展在磁盘上未必是连续的。

每个段(segment)的定义中都包含了数据扩展(extent)的存储参数(storageparameter)。存储参数适用于各种类型的段。这个参数控制着Oracle如何为段分配可用空间。比如

storage

  (

    initial 128K

    next 128K

    minextents 1

    maxextents unlimited

    pctincrease 0

  )

创建该表后oracle会给bigdata.dept非配8个block(即128K,这里每个block是8KB),

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值