在SQL Server中创建索引的最佳方法
我的表中有四列(a、b、c、d),它们都依赖于列(日期),因此在我的查询中我有:在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
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。香港人, 那只是一个样本。视情况而定。我认为在优化查询之前应该先进行测试。