|
本帖最后由 yulihua49 于 2022-8-1 20:57 编辑
退休好几年了,今天闲逛才看到你的帖子。
newkid老师说的对,我这个需要一个大系统架构来做。
就是说,一个分布式并行系统可以把这种任务进行的非常快。
我们的架构是把每一个部件的能力发挥到极致。这不是一个SQL语句能解决的。
实际效果是,两个RAC节点,面对3个计算服务器,每个服务器32核32线程。一个任务分配器,读出数据记录,分成每组1000个(经试验,这个数最快),分发到96个线程,进行一个复杂的计算,结果成批update回去。计算太复杂,通过96并行可以将计算时间忽略不计。看作读出来,分批update即可。3个计算服务器,共有15个连接指向2个RAC节点。
资源是精准分组的,每服务器5个连接最快。太大的并行度反而慢。400万记录处理完用5分钟。现在每天的数据量应该是在1000万以上了。退休了,不太了解了。
一个select(任务分配器)占1个连接,+15个update连接,共16个连接自动分配在两个RAC节点。
|
|