之前一直有想过这个问题,今天再读concepts的时候,读到DB_BLOCK_SIZE这个参数就试着刨刨低。到底支持多大的数据文件,和什么有关?参考Oracle官方的文档http://docs.oracle.com/cd/E18283_01/server.112/e17110/limits002.htm Version 11gR2.里面有这样一句话:[td]Item | Type of Limit | Limit Value |
| Database Blocks | Maximum per datafile | Platform. dependent; typically 222 - 1 blocks |
|
|
按照官方的说明来看是和平台有关。我们指导数据库的存储逻辑结构是data block==>extents==>segments==>tablespaces.物理结构是OS block==>data file。那么这个问题可以转成成一个数据文件可以最多存放多少个数据块。文档的意思是一般是222 - 1 个数据块。那么数据文件上限的大小可以得出计算公式:(222 - 1)*DB_BOLCK_SIZE,单位为KB。那么如果DB_BLOCK_SIZE为2k~32k的话。所对应的数据文件大小上限都出来了:(通过其他途径得到222 - 1=4194393)
SQL> select 4194393*2/1024/1024 GB from dual; ===>2k
GB----------8.00016975SQL> select 4194393*4/1024/1024 GB from dual;===>4k
GB----------16.0003395
SQL> select 4194393*8/1024/1024 GB from dual;===>8k GB----------32.000679SQL> select 4194393*16/1024/1024 GB from dual;===>16k GB----------64.001358SQL> select 4194393*32/1024/1024 GB from dual;===>32k GB----------128.002716
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26169542/viewspace-774790/
,如需转载,请注明出处,否则将追究法律责任。