侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

Oracle表的分类以及相关参数的详解

数据库  /  管理员 发布于 6年前   187

oracle中有如下几种类型的表:
1、堆组织表(heap organized tables):
常用的表类型,以堆的方式管理,当增加数据时,将使用段中第一个适合数据大小的空闲空间;当删除数据时,留下的空间允许以后的DML操作重用。
2、索引组织表:表存储在索引结构中,利用行本身排序存储。在堆中,数据可能被填到任何适合的地方,在索引组织表中,根据主关键字,以排序顺序来存储数据。
3、聚簇表:几张表物理存储在一块,通常是同一个数据块上。包含相同聚簇码值的所有数据在物理上存储在一起,数据"聚集"在聚簇码周围,聚簇码用B*Tree索引构建。
4、散列聚簇表:和聚簇表相似,但是不是用B*Tree索引聚簇码定位数据,散列聚簇把码散列到簇中,来到达数据所在的数据库块。在散列聚簇中,数据就是索引(比喻的说法)。这适合用于经常通过码等式来读取的数据。
5、嵌套表:OOP扩展的一部分,由系统产生,以父子关系维持子表。
6、临时表:存储事务或会话中的临时数据,用以中间结果的计算,分配临时段做为存储区域。
7、对象表:根据对象类型创建,有特殊属性并且和非对象表不关联。
一张表最多有1000列;理论上一张表有无限多行;能有和列的排列一样多的索引,且一次能够使用32个;拥有表的数量没有限制。
表的相关参数及术语
1)高水位标记
高水位标记开始在新创建的表的第一个块上。随着数据不断放到表中,使用了更多的块,从而高水标记上升。如果删除一些表中的行,高水标记仍不下移。即count(*)100000行和delete全部行后count(*)所需时间一样(全扫描情况下)。需要对表进行重建。
2)自由列表(freelist)
在oracle中用来跟踪高水标记以下有空闲空间的块对象。每个对象至少有一个freelist和它相关。当块被使用时,oracle将根据需要放置或取走freelist。只有一个对象在高水位标记以下的块才能在freelist上发现。保留在高水标记以上的块,只有freelist为空时才能被用到。此时oracle提高高水标记并把这些块增加到freelist中。用这种方式,oracle对一个对象推迟提高高水标记,直到必须时才提高。一个对象可能不只有一个freelist,如果预料会有许多并行用户对一个对象进行大量的insert或update,配置多个freelist能够提高整体性能(可能的代价就是增加存储空间)。
3)pctfree和pctused
如果pctfree设置为10,那么块在用完90%以前,都会使用freelist(都位于freelist中)。一旦达到90%,将从freelist中移除,直到块上空闲空间超过60%以后再使用(再次进入freelist中,当pctuser为40时)。
A.当pctfree设置过小,而经常更新时,容易出现行迁移
B.高pctfree,低pctused---用于插入许多将要更新的数据,并且更新经常会增加行的大小,这样插入后在块上保留了许多空间(高pctfree),在块返回到自由列表之前,块必须几乎是空的(低pctused)
C.低pctfree,高pctused---用于倾向于对表只使用insert或delete,或者如果要update,update也只是会使行变小。
4)initial,next和pctincrease
例如使用一个initial盘区为1MB,next盘区为2MB,pctincrease为50,可得到盘区应该是:(1)1mb(2)2mb(2)3mb(2的150)(4)4.5mb(3的150%)。一般认为这些参数是过时的,数据库应该使用局部管理并且盘区大小一致的表空间。在这种方式下,initial盘区总是等于next盘区的大小,并且不必使用pctincrease,使用pctincrease只会导致表空间产生碎片。在没用局部管理表空间的情况下,建议总是设置initial=next和pctincrease等于zero,这样可以模拟局部管理表空间的使用,为了避免碎片,所有在表空间中的对象应该使用相同盘区的分配策略。
5)minextents和maxextents
设置控制对象对它自己分配的盘区数。minextents为初始分配盘区个数。
6)logging和nologging
nologging允许对这些对象执行某些操作时不产生重做。它只影响一些特定的操作,例如开始创建对象或者使用sqlldr进行直接路径装载或者insert /*+ append */ select类型的语句。
7)initrans和maxtrans
对象中的每一块都有一个块头,块头的一部分是事务表,事务表中的条目描述哪一个事务块上的行/元素被锁定了。事务表的最初大小由对象的initrans设置确定,对于表,默认为1(索引默认为2),当需要时,事务表可以动态地增加,大小最多到maxtrans(假定在快上有足够的空闲空间),每一个分配的事务条目在块头上占用23字节的存储空间。


  • 上一条:
    Oracle索引(B*tree与Bitmap)的学习总结
    下一条:
    oracle 索引组织表的深入详解
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 分库分表的目的、优缺点及具体实现方式介绍(0个评论)
    • DevDB - 在 VS 代码中直接访问数据库(0个评论)
    • 在ubuntu系统中实现mysql数据存储目录迁移流程步骤(0个评论)
    • 在mysql中使用存储过程批量新增测试数据流程步骤(0个评论)
    • php+mysql数据库批量根据条件快速更新、连表更新sql实现(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2017-06
    • 2017-08
    • 2017-09
    • 2017-10
    • 2017-11
    • 2018-01
    • 2018-05
    • 2018-10
    • 2018-11
    • 2020-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-09
    • 2021-02
    • 2021-04
    • 2021-07
    • 2021-08
    • 2021-11
    • 2021-12
    • 2022-02
    • 2022-03
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-07
    • 2023-08
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-03
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客