2017-01-23 93 views
0

我已经完成了一些四处搜寻试图了解索引的信息。能够从布伦特奥扎尔的网站学到很多,但有一个后续问题。具有多个字段或多个索引的索引

在布伦特的关于sargabliity的视频中,他提到如果列在where子句中,那么它需要是索引中的第一列。我的问题是,如果where子句具有来自同一个表的多个列,那么应该是一个索引,其中的列按照where子句的顺序列出,还是每个列都有自己的索引?

这些表格每天更新一次,包含大约1000万条记录。

我使用SQL Server 2012的

回答

1

此基础上查询,这两个不同的索引就会大大不同。

,如果你有WHERE子句在这两个领域,

如果你有一个综合指数(在一个索引2场),SQL服务器 将使用下面的计划,这是非常快的。

Composite Index Plan

如果您对每个场2个独立的指数,SQL Server使用 不同的计划(慢得多以上)

Separate Index Plan

正如你看到的它会在不同的线程中找到每个数据集,然后合并它们。

尽管您可能会根据您的数据得到不同的计划,但这是SQL Server的一般行为。

+0

完美谢谢你的帮助 –