簡體   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