因此,请允许我说我对数据库的设计没有完全控制权,因此,对于本场景而言,无法更改当前系统的许多方面。
关于我们应该如何重新考虑设计方面的评论可能是正确的,但无济于事:)
我有一个很大的表,大约150个字段宽,大约600m行,它驱动着大量的进程。这是在数据仓库的情况下,因此我们在计划的加载过程之外没有任何更新/插入,因此它的索引很高。
已做出尝试对该表进行分区的决定,并且我对索引已分区表有些担忧。我没有分区方面的经验,因此不胜感激任何输入或链接。我在BOL或msdn上找不到具体的位置。
目前我们群集上一个领域,我们称之为IncidentKey
这是一个varchar(50)
,而不是唯一的-我们可以1-100记录与同一之间有IK
(没有意见,请)。我们经常会在旧IncidentKey
记录上获取新数据,因此也不是连续的。
我了解我需要IncidentDate
在群集索引键中包含分区字段,以使分区正常工作。我在想IncidentKey, IncidentDate
。
问题是,如果“新”分区中的记录应该在聚簇索引中“旧”分区中的记录之前,则聚簇索引的机制将如何在分区表的2部分键上工作?
例如,我有5条记录:
IncidentKey Date
ABC123 1/1/2010
ABC123 7/1/2010
ABC123 1/1/2011
XYZ999 1/1/2010
XYZ999 7/1/2010
如果我得到一条新记录,ABC123, 2/1/2011
它将需要在聚集索引BEFORE中 XYZ999, 1/1/2010
。这是如何运作的?
我假设使用碎片和指针,但是找不到具有双部分键的分区表上非分区聚簇索引的物理存储和配置的任何信息。