热点账号的问题,通常是热页冲突的极端表现,如国债额度、银行内部账户等,如果碰到这样的应用,建议操作热点账号的这只交易固定在某个特定的MEMBER上来跑,如Client Affinity方式,或单MEMBER的subset方式等。
如果不是上述极端情况,可以考虑的方案包括:使用尽量小的PAGESIZE,如4K(目前DB2支持extended rowsize技术,如果表结构有很多较长的varchar字段但是实际存放的数据较短,创建表时不需要严格考虑是否超过了页面大小的限制);表空间使用较大的Extent Size;采用随机索引(Random Index)技术减少索引页面的竞争,如索引中某列或某些列单向递增(时间戳、流水号等),或是在表中定义隐藏的计算列:Current Member,并将之放到索引第1字段;定义和节点号相关的表分区,如:"IDKEY" SMALLINT IMPLICITLY HIDDEN GENERATED ALWAYS AS (MOD(ID,10) + MOD(CURMEM,4)*10) ),其中CURMEM为另外一个表示Current Member的计算列。
收起