Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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_Sql Server_Sql Server 2008 - Fatal编程技术网

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

在SQL Server中创建索引的最佳方法,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我的表中有四列(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 c

我的表中有四列(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
第二项建议:

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
请确定哪一个更好使用。

这可能会帮助您:

CREATE NONCLUSTERED INDEX Index_Name ON TableName(Date) INCLUDE(A,B,C,D)

要索引的列应该是用于筛选的列(
WHERE
子句)。您可以添加
包含
以避免查找。

取决于总体工作负载。运行什么其他查询?我也会按(a)分组,按计数(a)排序b、c、d
在表(数据)上创建非聚集索引,包括(a、b、c、d)
@wewewesthemenance为什么使用非聚集索引???@Mr。香港人, 那只是一个样本。视情况而定。我认为在优化查询之前应该先进行测试。