我的交易表包含以下字段
OID int
StartDate DateTime
Source int FK
TransactionType int
ArchivedDate DateTime (nullable)
有两种交易类型:
Regular(ArchivedDate为null且TransactionType = 1)或Archived(ArchivedDate不为null且TransactionType = 2)。
为了使我们的常规事务唯一,StartDate上有一个过滤索引,而TransactionType = 1过滤了源。
我们还希望根据StartDate,Source和ArchivedDate使我们的存档交易成为唯一。
我愿意
最后一个精度:事务偶尔会被存档,因此TransactionType = 2的记录表示不到总记录的10%。
答案 0 :(得分:0)
我会将它们作为两个单独的过滤索引/约束来完成。随着存档事务的相对量不断增加,为常规事务保留单独的筛选索引将继续提供良好的性能。维护额外存档索引的成本应该非常低,因为存档状态意味着这些记录没有活动。