concept方案对象-01

方案定义:

方案是一个逻辑数据结构集合,每个user都有一个同名的方案,方案对象就是方案下的对象,例如user用户的user方案的下的tableview等对象。

方案schemauser区别

不过有点区别的是创建一个user后,当前user下没有对象,此时并不存在此user的方案schema,方案诞生与user下的第一个对象的创建。

行的格式容量:

数据行片断:

Oracle使用一个或多个行片断存储每一行数据。当一个数据块可以容纳一个数据行时(且表的列数小于256)此数据行就只用了一个数据行片断。

当一个数据块无法容纳一条数据行时,oracle将使用多个行片断存储这一条数据行。

(大多数情况下,一条数据行一般只需要一条数据行片断,存储在一个数据块内。)

行链接:

当需要多个行片断存储数据行,且数据行的行片断位于不同的数据块内,也就发生所谓的行链接。(多个片断,且存储在不同数据块)

提到了行链接就有行迁移:oracle conceptdata block extent segment中就提到了。

行链接是块内数据更新而无法存放在一个数据块内,此时就在原数据块内保存一个数据块的指针,而原数据行的rowid不会改变。

行迁移是插入新的数据到数据块时,数据块无法容纳,就此数据行存储在段内的一个数据链chain中。

块内链接:

当一个表超过255列时,第255列之后的数据将作为一个新的行片断存储在同一数据块内,称为块内链接。多个行片断进行块内链接,使用行片断的rowid进行链接(前面的blog中提到了rowid18位构成,前6位是数据对象编号对应于dba_objects中的data_object_id,中间3位是文件编号,然后接下来的6位是数据块编号,最后3位是行编号。)

(多个片断,但存储在同一数据块)

块内行迁移的I/O

块内行迁移和行迁移不同,前者对I/O没有带来额外的开销,后者由于访问了更多的数据块,对I/O会带来额外的开销

行片断结构:

行片断包含一个行头,数据行的部分或全部数据列长和列值。(行内某一列的数据也有可能跨越多个行片断,甚至多个数据块,concept提到的这点现在还没有很好的说明)

行头位于数据行之前,包含:行管理开销,行片断rowid(如果有链接) 列数 簇键(簇表),行头信息之后是各列的列长和列值。

数据行中的列值为null的存储:

为了节约存储空间,如果某列为nulloracle只存储其列长为0,列值不予存储,如果一行末尾的列是null,则列长也不予以存储。

(根据block的结构,block开销部分由块头(块的类型)表目录和行目录,每行还要占用数据块头中行目录区的2字节空间)

列顺序:

表内的所有数据行的列顺序都是一致的,列的顺序存储通常和create table语句中定义顺序一致,不过如果表含有数据类型为long的列,此列存储在行的末尾。Alter add的列也存储在行的末尾。(关于concepts中的long列会默认存储在行的末尾还需要测试,是否要dump数据块来测试,不过要通过数据块可以看见的信息还要进一步加深学习)

一般应该将null几率较大的列放在最后,节省空间。(创建包含数据类型long列时,上述方法无法节约空间)

表压缩

Oracle的表压缩compress压缩data blcok内的重复值,压缩的数据块内同时也存储了解压缩的信息(避免解压缩带来额外的I/O开销)。压缩的表的数据块内重复值被存储在块头的符号表内symbol table,而在该重复值实际发生位置存储指向symbol table对应位置的指针,可以节约空间。

可以被压缩的对象表和物化视图(物化视图也是一种表),而分区表可以执行压缩分区和全部分区。同样tablespace也有compress选项,如果表空间级别做了压缩设定,那么此表空间内的所有对象都是压缩模式.

Alter table tablename compress

Create table a compress as select * from dba_objects

Create materialized view viewname compress

As select

Alter materialized view viewname compresss

数据压缩使用与各种数据类型,但对于lob及基于log数据无效,表压缩的工作主要在批量加载bulk load到数据库时进行。表压缩带来的开销此时最为显著(这里的批量加载和表压缩是如何实现的)

常规的insert语句并不会压缩数据,而更新update相对非压缩表慢些。所以压缩表这些特性经常用到dw,那些不需要经常修改的数据。

以上文档摘自oracle conpects和自己的部分思考集结。

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25362835/viewspace-1055956/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25362835/viewspace-1055956/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值