Oracle Database 12c 的In-Memory 特性,说白了就是把数据搬到内存里,用列式存储来跑,速度挺快的。尤其是做 OLAP 的时候,响应基本是秒回,比传统行存储快一截。

In-Memory Area 就是它的“主场”,在 SGA 里占个位置,专门放列式数据。要开这个功能,你得在spfile里改INMEMORY_SIZE,比如设成 800MB,重启一下就行。建表的时候加个ALTER TABLE ... INMEMORY,数据就进内存了。

有意思的是,你用V$INMEMORY_AREA去看,会发现USED_BYTES蹭蹭涨,列存跑起来了。执行计划对比一下,列存的聚合和复杂查询,基本能并行跑大批数据,I/O 压力小多。

不过也别全上,像 IOT 表、集群表、LONG 类型、外置 LOB 这些都不支持。RAC 环境的话,最好每个节点 IM 列存大小一致。热点表、热点分区、常查的列放进去,效果更。

如果你经常海量数据,又嫌查询慢,那可以试试这个功能,成本不高,提升还挺。