2012-12-06 72 views
2

我有一個表按年,州和縣有數據。縣標識符存儲爲代碼狀態和​​縣的FIPS代碼。聚集索引和涵蓋的查詢

我在年和縣創建了一個CLUSTERED INDEX,我知道數據將以物理方式存儲在該安排中。

問題

  • 由於數據由FIPS碼存儲,都自動地佈置在狀態的訂單?

  • 在我看來,在State上添加一個非聚集索引並不會帶來任何好處。這是真的?

  • 更一般地說,如果我有幾個變量的聚集索引,查詢是否具有索引「覆蓋」的組件的WHERE,GROUP BY或ORDER BY子句,因此不需要索引?

回答

0

查詢無法知道狀態恰好處於缺少狀態索引的狀態。
關於狀態的查詢不會使用year和fips上的複合索引。

國家將受益於指數。
你可以有一個單獨的索引狀態。
或者在複合索引中包含狀態 - 年份,州,FIPS。

假設你有一個複合索引col1,col2,col3。 col3上的哪個位置。查詢可以使用複合索引,但它將是一個掃描。如果您有很多關鍵的使用col3的查詢,請在col3上放置一個索引,然後查看您是否獲得了好處。你需要測試加載數據。另一個因素是如果複合索引被大量使用,那麼它可能已經在內存中。