SqlServer2021 分区表学习总结
数据库结构和索引的是否合理在很大程度上影响了数据库的性能,但是随着数据库信
息负载的增大,对数据库的性能也发生了很大的影响。可能我们的数据库在一开始有着很
― ―高的性能,但是随着数据存储量的急 速增长 例如订单数据 数据的性能也受到了极大
的影响,一个很明显的结果就是查询的反应会非常慢。在这个时候,除了你可以优化索引
及查询外,你还可以做什么?
案例:
2021 年秋天的某天,某公司的一个团队接到成都市 XX 局一个 SQL 调优的 ESS 单
子。客户反映查询统计一次各地市局上报的数据汇总,需要 6 到 15 秒才能获得真正想要
的数 据,当工程师销售人员赶到客户数据中心现场后 发现里面布置了很多柜式服务器,每
台 服务器都是 8 核 16G 内存。和相关技术负责人沟通以及演示业务系之后,可以肯定不是
服务器性能的问题,工程师详细分析了他们的数据库,统计慢的几张表往往一周的上报数
便会增加 1 百多万行,导致他们这个系统刚上线没多久,某些表产生的数据已经在 2000
万行以上,最终提出了优化方案,业务逻辑层采用存储过程代替普通的 SQL 语句,并启
用相关开发平台的缓存技术;数据系统中采用增强索引和规划分区表进行优化,最终问题
解 决。 一、 什么是分区表?
分区表是把数据按某种标准划分成区域存储在不同的文件组中,使用分区可以快速而
有
效地管理和访问 数据子集,从而使大型表或索引更易于管理。合理的使用分区会很
大程度上提高数据库的性能。已分区表和 已分区索引的数据划分为分布于一个数据库中
多个文件组的单元。数据是按水平方式分区的,因此多组行映 射到单个的分区。已分区
表和已分区索引支持与设计和查询标准表和索引相关的所有属性和功能,包括约 束、默
认值、标识和时间戳值以及触发器。因为分区表的本质是把符合不同标准的数据子集存储
在一个数据 库的一个或多个文件组中,通过元数据来表述数据存储逻辑地址。
决定是否实现分区主要取决于表当前的大小或将来的大小、如何使用表以及对表执行
用
户查询和维护操作的完善程度。通常,如果某个大型表同时满足下列两个条件,则可
能适于进行分区:
1. 该表包含(或将包含)以多种不同方式使用的大量数据。
2. 不能按预期对表执行查询或更新,或维护开销超过了预定义的维护期。 使用分区
表有如下好处:
1. 提高数据的高用性,可用性的提高源自每个分区的独立性,优化器知道这种分区
机