SQL使用更简单的索引

时间:2014-08-05 08:59:16

标签: sql-server indexing database-performance

我的问题是使用了哪些索引?按什么顺序?为什么?以下示例

查询:

SELECT House 
FROM myTable 
WHERE 1=1 
 and City='myCity' 
 and Street='myStreet'
 and Color='myColor'

索引:

Ind1: City
Ind2: Street
Ind3: Color
Ind4: Street,Color

1 个答案:

答案 0 :(得分:0)

这取决于......服务器可能有统计信息,因此它会选择具有最有效过滤效果的索引,如:

如果City='myCity' returns 100

如果Street='myStreet' returns 1000

如果Color='myColor' returns 10000

元素,然后将使用City索引。此逻辑也适用于复合索引。 优化器将首先尝试获取最小的集合,然后将其他过滤器应用于此。

这需要uptodate统计信息,否则可能会使用错误的索引。