Sql server 是否为列分配索引?
我的第一反应是为[a,b,c]打开一个聚集索引 问题是: 假设有人正在运行另一个简单的选择:Sql server 是否为列分配索引?,sql-server,sql-server-2008,indexing,Sql Server,Sql Server 2008,Indexing,我的第一反应是为[a,b,c]打开一个聚集索引 问题是: 假设有人正在运行另一个简单的选择: select a,b,max(c) from myTable where a>b group by a,b 将通过[a,b,c]索引查找[a]列吗?或者它根本不使用索引。。。?(我猜它将使用[a,b,c]索引) 但我想它不会像单个[a]索引那样快 那我该怎么办 创建[a,b,c]索引 或 创建[a,b,c]+[a]索引你的第一个想法是正确的。查询: select a from myTable.
select a,b,max(c) from myTable
where a>b
group by a,b
将通过[a,b,c]
索引查找[a]
列吗?或者它根本不使用索引。。。?(我猜它将使用[a,b,c]
索引)
但我想它不会像单个[a]
索引那样快
那我该怎么办
创建[a,b,c]
索引
或
创建
[a,b,c]+[a]
索引你的第一个想法是正确的。查询:
select a from myTable.
将能够有效地使用(a、b、c)
索引。无需添加(a)
索引
至于这个索引是否应该进行聚类,这是一个完全不同的讨论。由于SQL Server只允许每个表使用一个聚集索引,因此应该明智地进行选择。请参阅MSDN文章:和。您的第一个想法是正确的。查询:
select a from myTable.
将能够有效地使用(a、b、c)
索引。无需添加(a)
索引
至于这个索引是否应该进行聚类,这是一个完全不同的讨论。由于SQL Server只允许每个表使用一个聚集索引,因此应该明智地进行选择。请参阅MSDN文章:和