最近遇到一个反馈说系统查询很慢,经常发生超时的问题,因系统上线比较久,部分数据表数据量比较大,常用的表少则1千多万,多的超过1亿条数据,且都是常用的表。目前想到的方案有:

  1. 分库:报表查询用一个库,操作用一个库。这样的改动对于系统来说改动比较小,但基本无法解决超时的问题;
  2. 分表:对于报表的改动比较大,是一个备选方案;
  3. 表分区:看到有文章介绍说表分区可解决性能问题,因表分区不需要对业务代码做任何改变,基于此特性我做了个验证。

  关于表分区的操作过程可参考:SQL Server表分区

  如果需要调整表分区方案可参考:SQL修改表分区方案(高效) 

-- 增加分区文件
ALTER PARTITION SCHEME fa_main NEXT USED [db06]

-- 新增分区表,加入新的分区规则,执行后它会自动将数据迁移到新的分区中
ALTER PARTITION FUNCTION fn_main() SPLIT RANGE(50000000)
调整分区方案

相关文章:

  • 2021-06-08
  • 2021-12-11
  • 2021-08-24
猜你喜欢
  • 2021-11-30
  • 2021-09-22
  • 2021-05-22
  • 2021-05-16
  • 2021-04-17
相关资源
相似解决方案