DB2 的 DPF 分区机制,真的是大数据时的好帮手。你想啊,一堆数据压到一个库上,不爆才怪。而 DPF 就是把数据拆成一小块一小块,分给不同机器去跑,各自带着 CPU、内存和磁盘,互不干扰,跑起来还挺带劲的。
Hash 分布的方式让数据分得挺均匀,不像以前碰运气那种。查询的时候,也不是傻等一个节点慢吞吞地返回,协调节点一发指令,各个分区齐上阵,完了再把结果合并,整个过程对你写的 SQL 是透明的,写起来和单机一样简单。
说实话,像那种动辄上亿行的大表、批量导入数据的操作,intra-partition和inter-partition parallelism这种双并行策略效果。不只是快,关键是负载也分散了,不怕高峰期。
比如你要搞实时装载、定时备份、统计信息收集这些活,DPF 可以让多个分区一起干,大大缩短时间,响应也快。维护也简单,分区独立性高,谁出事不拖全场。
哦对了,最多支持1000 个分区,想扩就扩。逻辑分区也行,物理分区也行。你按自己硬件情况来安排就好。唯一需要注意的就是,部署前一定得规划好,不期调整代价蛮大的。
如果你平时在高并发、高吞吐场景,比如金融、电商、BI 之类,建议一定要上手试试。顺便一提,有几个文章也挺有参考价值的:
如果你手里正好有大型 OLAP 系统或者 ETL 流程,可以把 DPF 用上试试,性能真能上一个台阶。