[英]Including column from clustered index into nonclustered?
我正在构建一个数据库来编译来自40个不同服务器的数据。 这些服务器都具有相同的设计,但使用的是专用于单个位置的平台(因此每个位置不需要识别ID)。 我为每个位置创建了已编译数据的密钥,但由于这几乎所有我的表都有复合主键,其设计如下:
LocationID, TransactionID, CustomerID, ServiceID, TransDate, Amount
和
LocationID, CustomerID, FirstName, LastName, Balance
对于列。
我的问题是,关于我的非聚集索引。 如果我计划在例如在Transaction
表上的CustomerID
上创建索引,那么最好包括LocationID
列,即使LocationID
已经在表的集群键中了吗?
希望有意义,提前谢谢!
在完成所有操作时,群集实际上是关于如何检索数据。 如果您要根据CustomerID
和LocationID
检索数据,那么您肯定要将它们包含在某种索引中。 但问题是,你得1)加载数据,这最终可能会重新平衡你的聚集索引(也就是说,如果你在加载LocationID
2装载之前在LocationID
1),然后2)定义您的查询以在所有内容中包含该LocationID
。
我的直觉是,在保留您已有的相同数据结构的同时重新键入所有内容更加清晰,而不是尝试将LocationID
合并到每个表和每个查询连接中。 是否更容易......好吧,我认为简单地重新键入传输中的数据可能更容易,而不是改变整个架构。 简单地添加LocationID
似乎很简单,但我怀疑它会咬你,特别是外连接查询以及比简单的equijoins更微妙的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.