Dan*_*n P 1 sql sql-server indexing performance sql-server-2008
我有一个带有列的表
ParameterValueId, SiteId, LocationId, ParameterId, SampleDateTime
Run Code Online (Sandbox Code Playgroud)
和其他一些专栏.
ParameterValueId 是主键.
我想创建一个不是唯一的索引来加速查询SiteId, LocationId, ParameterId, SampleDateTime.
SiteIdSiteId和LocationIdSiteId,LocationId和ParameterIdSiteId,LocationId,ParamterId,和过滤器>=/<= SampleDateTime我可以创建一个索引SiteId, LocationId, ParameterId, SampleDateTime吗?
或者我需要创建4个索引?
我想我的问题是,如果我在4列上创建一个索引它是否会被使用,如果我只使用这些列中的1,2或3而不是所有4列,仍然会提高性能?
作为一般的经验法则,根据您所描述的场景,所有四列上的一个索引可能是一个很好的起点.但是,根据数据的性质和形状,您可能还需要做其他事情来提高性能(例如,SiteID的不同之处是什么?它是唯一的吗?单个值是否超过20%的值? colum?).
简答:即使并非在查询中使用了所有覆盖的列,也将使用一个覆盖索引.
| 归档时间: |
|
| 查看次数: |
322 次 |
| 最近记录: |