• SQL SERVER 表分区造成插入慢?


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

  • 相关阅读:
    19. 各种提权姿势总结
    18. 各种数据库查询基础
    Kafka——分布式消息系统
    跳表
    Linux的io机制
    Make命令
    ElasticSearch之二——集群
    ElasticSearch之一——索引
    Scribe日志收集工具
    Thrift 的原理和使用
  • 原文地址:https://www.cnblogs.com/leftfist/p/4258159.html
Copyright © 2020-2023  润新知