2014-10-27 88 views
1

我讀 Clustered Index Design Guidelines 並試圖按照The Clustered Index Debate Continues…,但真的不明白它。發票項目表集羣索引表

但這必須是一個常見的例子: 我有一個InvoiceId作爲主鍵 - Clusterand InvoiceId。

我InvoiceItems表InvoiceItemId作爲主鍵和InvoiceId爲foriegn關鍵

在我看來,我會想在項目表InvoiceId簇索引。我的思考過程是:

  • 99%的查詢將用於整個發票而不是InvoiceItemId。 InvoiceItemId更多地是用於跟蹤每個項目的內部機制。
  • 雖然不是唯一的它靠近獨特
  • 將在遠程查詢

使用這是正確的設計決策,爲什麼或者爲什麼不呢?

+2

板凳標誌您所查詢的工作量 – 2014-10-27 23:03:35

+0

怎麼會這樣?有沒有一個工具呢?當前數據庫有3439個SP,其中30-50%是與發票相關的。 – Mike 2014-10-28 12:23:25

回答

3

答案在your first link中拼寫得很好。

考慮使用聚簇索引爲做查詢以下

  • 返回通過使用運算符,例如之間的值的範圍,>,> =,<,和< =。
  • [...]
  • 使用JOIN子句;通常這些是外鍵列。