在SQL Server中创建索引的最佳方法

4
我在我的表格中有四个列(a,b,c,d),它们都依赖于日期列,因此在我的查询中我有以下内容:
 select a where date 
 select b where date 
 select c where date 
 select d where date

我需要知道创建所有这些索引的最佳方法,我有两个建议:

第一个建议:
create i_a on a
create i_b on b
create i_c on c
create i_d on d
create i_date on date

第二个建议:
create i_a on a include date
create i_b on b include date
create i_c on c include date
create i_d on d include date

请问哪一个更好使用?

取决于整体工作量。其他运行的查询是什么? - Mitch Wheat
我按a进行分组,按数量(a)排序,对b、c、d进行操作。 - drex drex
CREATE NONCLUSTED INDEX ON Table(Data) INCLUDE(A,B,C,D) - Felix Pamittan
@wewesthemenace 为什么要使用非聚集索引? - User2012384
1
@Mr.香港人,那只是一个示例。这取决于情况。我认为在调整查询之前应该先进行测试。 - Felix Pamittan
1个回答

2
这可能会对您有所帮助:
CREATE NONCLUSTERED INDEX Index_Name ON TableName(Date) INCLUDE(A,B,C,D)

您想索引的列应该是用于筛选(WHERE子句)的列。您可以添加一个INCLUDE来避免查找。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接