繁体   English   中英

包括从聚簇索引到非聚簇的列?

[英]Including column from clustered index into nonclustered?

我正在构建一个数据库来编译来自40个不同服务器的数据。 这些服务器都具有相同的设计,但使用的是专用于单个位置的平台(因此每个位置不需要识别ID)。 我为每个位置创建了已编译数据的密钥,但由于这几乎所有我的表都有复合主键,其设计如下:

LocationID, TransactionID, CustomerID, ServiceID, TransDate, Amount

LocationID, CustomerID, FirstName, LastName, Balance

对于列。

我的问题是,关于我的非聚集索引。 如果我计划在例如在Transaction表上的CustomerID上创建索引,那么最好包括LocationID列,即使LocationID已经在表的集群键中了吗?

希望有意义,提前谢谢!

在完成所有操作时,群集实际上是关于如何检索数据。 如果您要根据CustomerIDLocationID检索数据,那么您肯定要将它们包含在某种索引中。 但问题是,你得1)加载数据,这最终可能会重新平衡你的聚集索引(也就是说,如果你在加载LocationID 2装载之前在LocationID 1),然后2)定义您的查询以在所有内容中包含该LocationID

我的直觉是,在保留您已有的相同数据结构的同时重新键入所有内容更加清晰,而不是尝试将LocationID合并到每个表和每个查询连接中。 是否更容易......好吧,我认为简单地重新键入传输中的数据可能更容易,而不是改变整个架构。 简单地添加LocationID 似乎很简单,但我怀疑它会咬你,特别是外连接查询以及比简单的equijoins更微妙的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM