怎么能快速地分表
在sqlserver中现在在有一个批次码表a,一个具体的码表b
b表里面有几千万条数据,查的时候太慢,现在要将码表分表,每个表最好不超过500万,但是同一个一个批次的码,要放在同一个表上。.
因为a表有数量,我本来打算手动select top n sum(num) a,只要接近500万,就记录n,然后insert into 分表 select b where p_id in(select top n sum(num) a).但是in的话,太慢了,而且几千万,分500万一个表,我要手动操作十多次,有没有什么方法可以简单快捷地把表根据该字段自动分表了?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
看题主的描述感觉还没到达需要分表的地步,mssqlserver性能不至于这么差吧?
建议贴出慢sql和表的ddl语句,分析一下慢的原因。
你可以试试用row_number
LineNo BatchID ID
-------------------- ----------- -----------
1 1 1
2 1 2
3 1 3
4 1 4
5 1 5
6 2 1
7 2 2
8 2 3
9 2 4
总体的数据可以根据LineNo来计算行数