分区可以为大型表带来易管理性、可扩展性以及性能提升.这是因为分区允许将数据集分解成史小的数据子集。依赖于索引键,表上的索引也可以是非常大的。应用索引分区的概念,如果大型索引拆分到不同的分区上,则一定会提升查询的性能。如果查洵的目标数据只是存在于一个分区上,将会带来益处,因为SQL Server只需锁定选定的分区,而不是访问索引的所有分区。
例如,在表Sales.WebSiteHits上创建的HitDateRangeScheme分区方案进行索引分区:
USE AdventureWorks
GO
CREATE NONCLUSTERED INDEX NI_WebSiteHits_WebSitePage ON
Sales.WebSiteHits (WebSitePage)
ON [HitDateRangeScheme] (HitDate)
注意,尽管HitDate列不是非聚集索引键.但是它包含在分区方案中,匹配表的索引键。当索引和表使用同一分区方案时,它们被称为“对齐”。
可以选择为索引使用与表不同的分区方案,但是必须使用同一数据类型参数、分区的数量和边界值。非对齐的索引可以在合并联结中获得益处——意思是如果两个表中的两列频繁联结,并且使用同一分区函数、同一数据类型、同样的分区数与边界,则可能会提升查询联结性能。然而,出于管理与性能方而的原因,通常的方法将更可能是使用索引与表的对齐分区方案。