oracle数据库⽂件⼤⼩【Z】
Oracle数据库的物理⽂件可以设置成⾃动增长的类型, 这样数据库在需要更多空间时, 物理⽂件会按设定
的增长量⾃动增长到指定的最⼤值. 这样会有⼀些好处: 保证不会因为分配数据区域(extent)失败⽽终⽌应⽤.
但如果没有设定这个最⼤值, 它将会是⼀个⾮常⼤的数字. 数据块⼤⼩不同, 其最⼤值也不⼀样. 因为Oracle 的物理⽂件最⼤只允许4194303个数据块(datablock).
下⾯列表说明不同数据块数据库所能⽀持的最⼤物理⽂件⼤⼩:
数据块的⼤⼩物理⽂件的最⼤值 M
===============================================
2048        8191 M
4096        16383 M
8192        32767 M
16384        65535 M
数据⽂件⼤⼩是由 db_block_size 来决定的,8KB的数据块的数据⽂件最⼤为 8K * 4194304 = 32G,其他的以此类推
数据块数据⽂件
2KB        8GB
4KB        6GB
8KB        32GB
16KB      64GB
32KB      128GB
查询实例的db_block_size值:
select value from v$parameter where name='db_block_size'
当我查询到我们的数据块为8kb时也就意味着我们的最⼤数据⽂件⼤⼩为32G
要是我们的数据容量⼤于32G该怎么处理?
脑⼦⾥⼀闪⽽过,能不能更改数据块类型,如果能改为32k不就够⽤了吗?
于是就在⽹上查询数据块更改⽅法,最后得出的答案是:
块是分配和I/O的最⼩分配单元。⼀旦创建数据库后,便不能更改。那oracle能不能在⽂件容量达到峰值时⾃动增加数据⽂件呢,查询得到的答案还是NO,oracle没有这么智能。看样⼦只能⼿⼯增加数据⽂件了,但后⾯疑问⼜来了,当从多个数据⽂件的表空间导出到另⼀个实例中是否需要同样新建⼏个数据⽂件呢?经过测试这倒没有必要,只要⽬标表空间中的数据⽂件⼤⼩够存储即将导⼊的数据即可。
数据块⼤⼩(Data Block Size)的选择
通常数据库块的⼤⼩都是8K,但是对于不通的应⽤(OLTP,DSS)应该选择不通的块⼤⼩。数据库块⼤⼩的遵循如下的原则。
下⾯的情况可以选择⼩尺⼨数据块:
⾏的宽度很⼩,并伴有⼤量的随机访问(Random Access)
减少块竞争
注:选择⼩尺⼨数据块会浪费⼤量的存储空间,oracle选择数据库
下⾯的情况可以选择⼤尺⼨数据块:
⾏的宽度很⼤,或者含有LOB字段
应⽤中存在⼤量的顺序读(Sequential Access)
节省I/O,⼀次可以读⼊更多的数据量

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。