缺少索引 - 执行计划SQL Server 2008中的非聚集索引

时间:2012-07-09 18:42:26

标签: sql-server sql-server-2008 indexing

enter image description here

正如您所看到的,我的tblClaims表上有一个三字段外键。此表的id是一个连续整数。运行特定查询时,我注意到查询太长而无法运行。所以我加入了执行计划并被告知

missing index: create nonclustered index on patientid, admissiondate, dischargedate

我很想做

create nonclustered index ix_tblClaims on tblClaims
(patientID asc, admissiondate asc, dischargedate asc)

我已经在这里和那里阅读了一些关于多列索引或以不同方式索引每列的内容。如果我按照单独索引每列的方法,只使用一个索引是否正确?

1 个答案:

答案 0 :(得分:2)

是。想一想,如果我给你一张按名字列出所有城镇的地图,你会发现你想要快速前往的城镇。如果它按顺序列出所有街道地址,那么你可以很快找到'10伦敦道路'地址,但是你可能需要一段时间才能找到你正在寻找的那个地址。如果它在城镇后面有一个索引,然后是街道,那么你可以在一步中找到你想要查找的实际地址,非常快。

数据库中的索引也没有什么不同。如果您需要根据不止一件事情查找,那么您需要一个可以涵盖您正在查找的内容的索引。