oracle学习之逻辑结构1

oracle逻辑结构简介

  oracle是由数据库和实例构成,而数据库呢有各种文件构成,那么从逻辑上来说,oracle具体有什么组成呢?其实很简单,这些文件有各类表空间组成,表空间呢有段segment构成,段有区extent构成,区有oracle的最小单位block组成。
  听起来挺复杂的,一点点说吧。block是数据库最小的逻辑单位,block设置也有讲究,一般是os块容量512字节的整数倍,这样子可以减少io操作。通过show parameter可以查看db_block_size相关参数,当然对于olap系统推荐block尽量大,而对于oltp系统推荐不要太大。而块组合在一起就形成了extent,这个extent是数据库空间分配的最小单位。而segment在创建表的时候直接为其分配好了,也可以使用storage子句设定存储参数,决定数据段segment分配多少初始空间。这些段和区使用情况可以通过数据字典(user_extents)进行查询。而对于块的大小也是可以调整的
  表空间来说大家可能比较熟悉,主要有系统表空间、临时表空间、数据表空间和回滚表空间。具体建表语句大体如下,比较懒,就不打那么多了:
  普通表空间:create tablespace ...datafile...
  临时表空间:create temporary tablespace...tempfile...
  回滚表空间:create undo tablespace... datafile...
  这些表空间中系统表空间和用户表空间属于永久保留内容的表空间,而其他则例外。对于回滚表空间,一个用户虽然可以创建多个,但是在同一时刻只能启用一个回滚表空间。
  当然在创建表空间或者表的时候,都是可以改变段或者区大小,比如在建表的时候可以通过storage设置存储参数来设置。另外段的一些也可以通过建表时候的pctfree大小可以影响数据库的性能,对于只插入删除的表来说,可以将pctfree设置为0,大大提高oracle效率,当然如果有更新,就要根据实际情况对pctfree进行设置了,不过如果更新数据之后会引起行迁移,这时候可以通过数据重建消除行迁移,然后根据实际对pctfree调整。另外与pctfree相对应的有一个参数pctused,这个参数是控制使用的块删除数据后剩余数据块占比大于pctused,这时候才能再插入数据。对于区extent、block来说,可以在创建表空间时候使用uniform(extent)来设置统一尺寸,通过blocksize来设置块的大小。
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值