zoukankan      html  css  js  c++  java
  • SQL SERVER 表分区造成插入慢?

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

  • 相关阅读:
    02-模板字符串
    01-学习vue前的准备工作
    21-z-index
    20-定位
    19-background
    18-超链接导航栏案例
    17-文本属性和字体属性
    16-margin的用法
    jBPM
    Table of Contents
  • 原文地址:https://www.cnblogs.com/leftfist/p/4258159.html
Copyright © 2011-2022 走看看