Indexing 具有多个字段或多个索引的索引
我做了一些环顾四周的工作,试图了解索引。能够从Brent Ozar的网站上学到很多东西,但有一个后续问题 在Brent关于Sargability的视频中,他提到如果列在where子句中,那么它必须是索引中的第一列。我的问题是,如果where子句在同一个表中有多个列,那么这应该是一个索引,其中列按where子句的顺序列出,还是每列都有自己的索引 这些表格每天更新1次,包含约1000万条记录Indexing 具有多个字段或多个索引的索引,indexing,sql-server-2012,Indexing,Sql Server 2012,我做了一些环顾四周的工作,试图了解索引。能够从Brent Ozar的网站上学到很多东西,但有一个后续问题 在Brent关于Sargability的视频中,他提到如果列在where子句中,那么它必须是索引中的第一列。我的问题是,如果where子句在同一个表中有多个列,那么这应该是一个索引,其中列按where子句的顺序列出,还是每列都有自己的索引 这些表格每天更新1次,包含约1000万条记录 我使用的是SQL Server 2012。根据您的查询,这两种不同的索引将大不相同 如果WHERE子句中有两
我使用的是SQL Server 2012。根据您的查询,这两种不同的索引将大不相同 如果WHERE子句中有两个字段 如果您有一个复合索引(一个索引中有两个字段),SQL Server 将使用下面的计划,它是非常快的 如果每个字段上有2个单独的索引,SQL Server将使用 不同的计划(比上面慢得多) 如您所见,它在不同的线程中查找每个数据集,然后合并它们
不过,根据您的数据,您可能会得到不同的计划,但这是SQL Server的一般行为。非常感谢您的帮助