RICHEER COCA 2022-05-24 07:26 采纳率: 93.9%
浏览 35
已结题

如何多线程分批处理千万级数据?



/***
SQL Server 2019数据库里已经有2个数据表  History10_77A  和  F27X9_133a;

表[ History10_77A ]里的数据有 1.2亿行数据,行转列后,#JCHtory10里的数据有 12亿 条数据;

表[ F27X9_133a ]里的数据有4,686,825行数据(约470万行记录),行转列后,#JCHtory10里的数据有42,181,425条数据(约4200万条记录);

查询要求:查询表[ History10_77A ]里的n1、n2、n3、n4、n5、n6、n7、n8、n9、n10,要求和表[ F27X9_133a ]里的S1、S2、S3、S4、S5、S6、S7、S8、S9这9个数字全部相同;
查询结果输入到表JCResult_9;

问题一
如何多线程分段处理批量数据?

问题二
对于刚刚学习多线程分段处理批量数据的菜鸟搭建哪一种运行环境比较合适?

***/
-- 执行脚本

DROP TABLE IF  EXISTS #JCHtory10;
DROP TABLE IF  EXISTS #JCF27X9;
DROP TABLE IF  EXISTS #JCResult;

create table JCResult_9([ID] [int] IDENTITY(1,1) NOT NULL primary key,n1 INT,n2 INT,n3 INT,n4 INT,n5 INT,n6 INT,n7 INT,n8 INT,n9 INT,n10 INT);
 
select ID,n1 as  gid 
into #JCHtory10 
FROM History10_77A
union all
select ID,n2 FROM History10_77A
union all
select ID,n3 FROM History10_77A
union all
select ID,n4 FROM History10_77A
union all
select ID,n5 FROM History10_77A
union all
select ID,n6 FROM History10_77A
union all
select ID,n7 FROM History10_77A
union all
select ID,n8 FROM History10_77A
union all
select ID,n9 FROM History10_77A
union all
select ID,n10 FROM History10_77A;
 
select ID,s1 as  cid  
into #JCF27X9
FROM [F27X9_133a]
union all
select ID,s2 FROM [F27X9_133a]
union all
select ID,s3 FROM [F27X9_133a]
union all
select ID,s4 FROM [F27X9_133a]
union all
select ID,s5 FROM [F27X9_133a]
union all
select ID,s6 FROM [F27X9_133a]
union all
select ID,s7 FROM [F27X9_133a];

 
SELECT #JCHtory10.id into #JCResult
    FROM #JCHtory10 
        JOIN #JCF27X9 ON #JCHtory10.gid = #JCF27X9.cid 
            GROUP BY #JCHtory10.id, #JCF27X9.ID 
                HAVING COUNT( 1 ) = 9 ;
              
INSERT INTO JCResult_9

SELECT n1,n2,n3,n4,n5,n6,n7,n8,n9,n10 FROM History10_77A a 
        WHERE EXISTS( SELECT 1 FROM #JCResult b WHERE a.id = b.id );
 



  • 写回答

1条回答 默认 最新

  • CupidoZ 2022-05-25 13:46
    关注

    问题一
    如何多线程分段处理批量数据?
    多开些线程
    如果有抢占的话new thread()时记得加个锁,
    建议对数据结构进行工厂和迭代优化

    问题二
    对于刚刚学习多线程分段处理批量数据的菜鸟搭建哪一种运行环境比较合适?
    运行环境指的是什么呢?C#就.net/net core都行 Java 就一个jre C 都不需要 runtimeWIndows自备 C++同理 其他自查........不一一列举
    sqlServer比较建议C#.net看效果比较好些

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月2日
  • 已采纳回答 6月2日
  • 创建了问题 5月24日

悬赏问题

  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来