运行 Table 上的历史记录

Running History on a Table

我有一个包含客户信息的 table。 Phone 号码、地址、年龄和几个不同的自定义分组。对于任何给定的客户,所有这些事情都可能在任何一天发生变化。我被要求创建一些东西来显示每位客人的 运行 历史记录。这样我们就可以说在第 X 天客户 A 有 Phone 个号码、地址、年龄等等。然而,在第 Y 天,客户有一个 Phone 这个号码,这个地址,这个年龄等等。

下面是这个监控的一些字段的示例。(不想列出所有的几百个)

Create Table CustHist
(
 CustID int
,Phone Varchar(21)
,address1a varchar(30)
,address1b varchar(30)
,city1 varchar(30)
,State1 Varchar(30)
,zip1 varchar(5)
,address2a varchar(30)
,address2b varchar(30)
,city2 varchar(30)
,State2 Varchar(30)
,zip2 varchar(5)
,age int
,CustomGroup1 varchar(30)
,CustomGroup2 Varchar(30)
,CustomGroup3 varchar(30)
)

我对此的第一次尝试是 运行 一个存储过程,该过程会每天为每个客户添加一条记录,其中包含他们的当前信息。table。当我这样做时,我为日期添加了一个列并插入了当前日期。问题是 table 的大小增长得非常快,我们关心的是磁盘 space.

有没有什么办法可以保持这么详细的记录而不占用那么多磁盘space。

这是在 SQL Server 2012 上。

你应该使用渐变维度。您可以将 table 标准化为备用磁盘 space,但您可能会遇到性能问题。