背景
线上业务清单表数据有2.4亿条,业务场景主要:清单插入,清单查询(业务量较少),数据统计等;
考虑通过分区提升数据统计性能,Oracle分区有范围分区、哈希分区、列表分区等,不同分区适用场景应该是有区别的,本文档通过测试,验证并总结范围分区、哈希分区的适合场景;
测试环境
分别使用范围分区、哈希分区创建临时表,并建立索引,然后倒入7000万条数据;
测试一:聚合操作
分别执行如下SQL的执行计划:
不分区
select pay_id,balance_type_id,sum(balance) from billing.info_pay_balance
group by pay_id,balance_type_id;

范围分区
select pay_id,balance_type_id,sum(balance) from balance_range
group by pay_id,balance_type_id;

哈希分区
select pay_id,balance_type_id,sum(balance) from balance_hash
group by pay_id,balance_type_id;

测试二:查询
范围分区
select * from balance_range where pay_id = '2158504190113502';
哈希分区
select * from balance_hash where pay_id = '2158504190113502';
测试总结
本文针对Oracle数据库中范围分区和哈希分区的性能进行测试对比,通过创建临时表并导入大量数据,评估两种分区方式在聚合操作和查询上的表现,旨在为大规模数据统计提供优化策略。
2万+

被折叠的 条评论
为什么被折叠?



