单个索引在多个列上选择时是否有好处? SQL Server

时间:2013-06-20 17:06:04

标签: sql-server indexing

例如,有一个包含列的表:ColumnA,ColumnB,ColumnC,ColumnD

并且有几个选项使用where子句:

ColumnA, ColumnB, ColumnC
ColumnA, ColumnC, ColumnD
ColumnA, ColumnB, ColumnD

目标是加快这些查询。但是我不想为所有列组合创建多列索引,因为它会占用很多位置并且可能会降低系统速度。

是否有意义为ColumnA创建索引?它会改善查询性能吗?

由于

1 个答案:

答案 0 :(得分:0)

索引用作减少表扫描的方法"。您应该索引最常使用的列或列组合。如果这意味着使用2列,那很好。

还要记住,CLUSTERED索引是数据的物理页面排序。非集群不是。因此,任何聚集索引都会更有效率。您始终可以将最常用的字段设置为聚簇索引,并将非聚集索引放在不常用的字段上。

最后是关于数据的全部内容。我曾经使用超过1B记录的医疗保健表,索引在这样的环境中非常重要。