在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万一个表,我要手动操作十多次,有没有什么方法可以简单快捷地把表根据该字段自动分表了?
付费偷看金额在0.1-10元之间
你可以试试用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来计算行数
建议贴出慢sql和表的ddl语句,分析一下慢的原因。
看题主的描述感觉还没到达需要分表的地步,mssqlserver性能不至于这么差吧?
一周热门 更多>