Oracle-Bigfile and Smallfile

来源:互联网 发布:python help 用法 编辑:程序博客网 时间:2024/05/17 02:39
 Oracle-Bigfile and Smallfile
在创建tablespace的时候,有BigFile和SmallFile两种方式:
BigFile创建的TableSpace可以达到2的32次方个blocks,只能创建一个Datafile。 而SmallFile最大到2的22次方,SmallFile最多可以创建1022个Datafile,总和稍少于BigFile。两者在性能方面有什么区别?
因为Bigfile的Tablespace不能有多个文件,必须保证在同一个磁盘空间有足够的容量。Oracle文档建议使用ASM或者logical volume managers that support RAID and dynamically extensible logical volumes.
出于节点考虑,使用ASM并不是建议,而是必须。如果你在一般计算机上创建BigFile,就会有很大的inode locking issues问题出现,所以ASM是必须的。
如果使用BigFile创建Temp Tablespace,在排序过程中会很大程度的影响Oracle性能,用多个Temp文件是为了达到并行排序从而优化性能。
多个temp datafile可以提高性能,因为多个子进程可以并行的对不同磁盘上的文件进行操作,他们共享了所有的IO,。当选用BigFile作为tempfile时,那么这个优势将不在存在。

BigFile的优势:
1. 在初始化期间,由于DB_FILEsS init比较小,所以需要的SGA也比较小,参数和控制文件也比较小(无法理解用SmallFile会增加多少参数和控制文件大小)
2. 由于BigFile只能有一个文件组成,所以操作简单(和性能相比,这也能算优势)
logging :说明在该表空间中所有数据的变化都将写入重做日志文件,这是默认方式;
nologging :说明在该表空间所有数据的变化不写入重做日志文件,nologging 只影响一些DML和DDL命令。