Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 是否为列分配索引?_Sql Server_Sql Server 2008_Indexing - Fatal编程技术网

Sql server 是否为列分配索引?

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.

我的第一反应是为[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.
将能够有效地使用
(a、b、c)
索引。无需添加
(a)
索引



至于这个索引是否应该进行聚类,这是一个完全不同的讨论。由于SQL Server只允许每个表使用一个聚集索引,因此应该明智地进行选择。请参阅MSDN文章:和。

您的第一个想法是正确的。查询:

select a from myTable.
将能够有效地使用
(a、b、c)
索引。无需添加
(a)
索引


至于这个索引是否应该进行聚类,这是一个完全不同的讨论。由于SQL Server只允许每个表使用一个聚集索引,因此应该明智地进行选择。请参阅MSDN文章:和