多块大小支持的 Oracle 9i 数据库,真的是挺实用的功能。你可以设置一种标准块,比如 8K,额外再配最多四种非标准的,比如 2K、4K、16K 甚至 32K,灵活又兼容老系统,挺适合做分区表或者历史数据的场景。
9i 的多块大小机制对性能优化还蛮有。比如你要搞一个大表空间专门用来跑大对象(LOB),就可以指定一个大块,比如 32K,提高 I/O 效率;而小表空间用小块节省空间,合理,对吧?
块大小是在创建tablespace
的时候设定的,记住不是全局设置。像这样:
CREATE TABLESPACE big_data_ts
DATAFILE 'bigdata01.dbf' SIZE 100M
BLOCKSIZE 32K;
要注意,非标准块大小的表空间前提是你得在init.ora
或spfile
里配置好DB_nK_CACHE_SIZE
参数,不然系统直接罢工,可别踩坑。
你要是对块结构更感兴趣,推荐几个文章挺细的:
- Oracle 数据库块结构解析,讲得还蛮清楚
- Oracle 数据块损坏全攻略,预防崩坏,还是得看它
- ORACLE 块结构的详细解析,比较细节党向
如果你还在用 9i(虽然有点年头了),这个功能还挺香的。合理用块大小组合,省空间提性能两不误,老系统也能玩出花来~