存档记录的最佳方式

时间:2013-09-07 07:25:33

标签: sql-server database-design archive

我有一个名为“RawNews”的表,其中包含以下字段:

[NewsID] [decimal](18, 0) IDENTITY(1,1) NOT NULL,
[Title] [nvarchar](200) NULL,
[Description] [nvarchar](500) NULL,
[Text] [ntext] NULL,
[RegDate] [nvarchar](50) NULL,
[RegTime] [time](0) NULL,
[Status] [nvarchar](300) NULL,
[Tags] [nvarchar](50) NULL,
[SecurityLevelID] [smallint] NULL,
[IsDeleted] [bit] NULL,
[DelDate] [nchar](10) NULL,
[UserName] [nvarchar](50) NULL,

和另一个名为“UsedNews”的表,它具有相同的字段加 其他一些领域。 并且还有一些其他表格可以用于上传,图像,新闻组,新闻客户,用户等。

在RawNews中,我每天有100条记录。这些100个Recor用于UsedNews。 这些信息应该保持永恒。 我想请你建议我一个好的方法来记录档案,所以搜索和过滤性能仍然很好。 还有一个问题:我有记录表记录系统中的每个事件,我应该将它保存在单独的数据库中吗? 非常感谢

2 个答案:

答案 0 :(得分:1)

我建议table partitioning来解决这个问题。 RegDate可用于确定是否应将记录移动到归档组。

您可以选择将存档表放在单独的磁盘上,这样当对其进行搜索时,它对“实时”数据库的其余部分影响最小。

答案 1 :(得分:0)

有很多方法可以做到这一点..

  1. 您可以使用SQL Server的相应“复制”功能。在您的情况下,快照复制类型似乎适用于更多详细信息Click

  2. 您可以创建Windows服务以将数据从RawNews移动到UsedNews。

  3. 您可以创建一个exe来移动数据,并使用Windows任务调度程序,您可以在服务器负载较少的特定时间调用该exe。