SQL SERVER 表分区造成插入慢?

某日,我将一个有数千万条记录的表分区之后,数据库CPU一下子飙升到100%。
性能不降反升,什么道理?
因为这个表每天都有约500万条记录插入,难道是表压缩和索引压缩的缘故?去掉压缩,没什么变化。
索引只有两个,跟之前数量一样,应该也不是索引太多。
取消分区,CPU回复正常。难道分区是罪魁祸首?
然而不能不分区的。我也不相信是分区的缘故,有资料说分区后,不仅是查询快,插入也会快。
主要是索引的问题。因为需要用到分区切换,索引必须与分区对齐,原先的主键,就硬是塞了个分区依据列进去,变成了复合主键:
[Id] + [CreateDate]
引起CPU飙升的元凶在于这个语句
SELECT MAX(Id) FROM [table1]。
喂,Id不是索引吗?虽然是复合索引,但它是第一个字段啊。
但如果给它加上个条件:
SELECT MAX(Id) FROM [table1] WHERE Id>12312312
情况马上改善很多。
搞不懂。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值