[分享]oracle逻辑结构简介_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2033 | 回复: 0   主题: [分享]oracle逻辑结构简介        下一篇 
arlen1990
注册用户
等级:上士
经验:276
发帖:7
精华:0
注册:2015-1-27
状态:离线
发送短消息息给arlen1990 加好友    发送短消息息给arlen1990 发消息
发表于: IP:您无权察看 2015-1-29 14:37:17 | [全部帖] [楼主帖] 楼主

 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来设置块的大小。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论