首页 > 解决方案 > Sql server 表:创建分区?

问题描述

我有一个 sql datadas,其中我有一个价格表,其中每个商店的每个产品都有一个价格。

有 50 家商店和超过 500000 种产品,所以这张表很容易有 25 到 3000 万条记录。

该表每天晚上都会提供价格更新,并且在白天有大量的读取操作。读取是以只读意图进行的。

所有查询都包含 storeid 作为标识要更新或读取的记录的一部分。

我还不能确定这将如何表现,因为我预计外部供应价格,但我预计至少在读取操作上会出现性能问题,即使现在索引已经到位......

我的问题是我是否应该按存储考虑表分区,因为它始终是查询的一部分。但是我有索引,其中 storeid 不是索引中唯一的列。

基于这种情况,你会推荐分区吗?我看到的另一种选择是每家商店有 50 张桌子,但这似乎很轻松,如果可能的话,最好避免

标签: sql-serverdatabase-partitioning

解决方案


如果我应该考虑按存储进行表分区,因为它始终是查询的一部分

是的。这听起来很有希望。

但是我有索引,其中 storeid 不是索引中唯一的列。

没关系。只要分区列是聚集索引列之一,就可以按它进行分区。实际上,通过分区,您可以消除聚集索引的尾随列的分区,然后在目标分区内进行聚集索引查找。


推荐阅读