首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL Server分区

SQL Server分区
EN

Stack Overflow用户
提问于 2019-01-08 20:45:07
回答 1查看 71关注 0票数 0

我正在MS SQL 2016中处理一个繁重的记录集数据库。所以我想使用行表分区特性来提高速度。

正如我们所知道的,分区特性作用于表的分区列。假设表的Date列。在我们的场景中,由于在5到7个表中设置了heaver记录,因此需要对许多表进行分区。并不是每个表都有该日期列。也不可能在每个表中添加该列。

那么有没有什么方法可以选择另一个表或其他表的分区列呢?

EN

回答 1

Stack Overflow用户

发布于 2019-01-08 23:55:24

最好的选择是向所有表中添加一个公共列,然后使用该列进行分区。您必须已经有了一种将不同的表相互关联的方法,以便可以使用此方法为每个表标记正确的分区列。

此列可以像使用YYYYMM的int一样简单,就像每月分区的值一样。

你还需要确保你的查询是“分区感知”的。这意味着您应该在WHERE子句和任何查询的JOIN子句中包含此列。使用查询计划来确保您正在对查询进行分区消除。

如果您不能更改模型(但可以添加分区?)然后,您可以在每个表中使用不同的列实现分区,前提是每个表中只有一个列可以对命名范围进行分区-但是如果您有一对多的关系,那么子表的键就不太可能相对于父表是连续的。请注意,这种方法将使您的“分区感知”查询更加复杂。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54092098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档