我有列SQL Server 2008中索引多列一些不使用所有的時間
ParameterValueId, SiteId, LocationId, ParameterId, SampleDateTime
和其他一些列的表。
ParameterValueId
是主鍵。
我想創建一個非唯一的索引以加快SiteId, LocationId, ParameterId, SampleDateTime
上的查詢。
- 我所有的查詢會用我的查詢
SiteId
- 75%將使用
SiteId
和LocationId
我的查詢
- 50%將使用
SiteId
,LocationId
,和我的查詢ParameterId
- 25%將使用
SiteId
,LocationId
,ParamterId
和過濾>=/<= SampleDateTime
我可以在SiteId, LocationId, ParameterId, SampleDateTime
上創建一個索引嗎?
或者我是否需要創建4個索引?
我想我的問題是,如果我創建一個索引4列將使用它,並仍然提高性能,如果我只使用1,2或3列,而不是全部4?
「如果我創建一個索引,那麼如果我只使用1,2或3個4不是全部4個,那麼它將被使用並仍然會提高性能?」 - 是的。 (並且確保你的覆蓋索引也適合你的場景(SiteId,LocationId,ParameterId,SampleDateTime)。不要以爲每個列創建一個索引,這在你的情況下根本不是一個好習慣 – Tirumudi