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)
减少块竞争
注:选择小尺寸数据块会浪费大量的存储空间,
下面的情况可以选择大尺寸数据块:
行的宽度很大,或者含有LOB字段
应用中存在大量的顺序读(Sequential Access)
节省I/O,一次可以读入更多的数据量
节省存储空间
————————————————
版权声明:本文为CSDN博主「nj198624」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/nj198624/article/details/8160426