保存数据库历史

时间:2010-03-10 13:00:25

标签: sql-server

A在MS-SQL Server 2008上有一个数据库,它逐年增长很多。

我想要做的是:获取一些数据并存储在XML文件中,并将该文件存储在同一数据库的表中。

这是个好主意吗?你有什么想法吗?

感谢。

2 个答案:

答案 0 :(得分:2)

标准方法是设置一个新数据库(可能在不同的计算机上),该数据库将是您的存档数据库,并按计划运行存储过程以将记录移动到存档< / em>数据库(例如,仅记录2年前的记录或适合您业务问题的记录)。您必须复制表的结构并保持两个dbs同步。你可以在你的sp中只包括最大的表,通常只有少数表会引起问题。

通过这种方式,您仍然可以以适当的方式访问归档数据并对其运行查询。将数据存储在数据库中的xml对我来说并不是一个好主意,因为如果您需要旧数据,那么您将遇到困难。此外,它会给你一个巨大的磁盘空间开销。

答案 1 :(得分:0)

XML本质上是冗长的,并且在表列/行结构中存储数据的效率远远低于本地。

例如,假设只存储一个简单的用户表...

<Users>
  <User>
     <UserID>1</UserID>
     <Name>Joe Smith</Name>
     <DOB>24.02.1973</DOB>
  </User>
  <User>
     <UserID>2</UserID>
     <Name>Joleen Smith</Name>
     <DOB>13.10.1962</DOB>
  </User>
  ...
  ...

最好制作模式副本并将存档数据导出到第二个副本。这样你仍然可以查询它(如果它是XML)你将无法轻易做到的