将文档保存在SQL Server数据库中

时间:2012-02-18 07:12:15

标签: c# sql-server document binaryfiles

我有一个C#/ SQL Server项目。和数据库可以从不同的地方(这三个地方之间没有lan)和数据库中的数据很重要,因此我在过去30天内每小时进行一次恢复或我的数据库。

我要保存的文件是传真,excel,word,pdf类型数据的种类,没有格式化。因此无法在其中获取数据。

问题是如何在SQL Server中存储文档我不希望因为增加备份大小而放大它的大小。

那么有效的解决方案是什么?

3 个答案:

答案 0 :(得分:2)

如果你想存储它将会发生的事情。您有多个选择:

  1. 仅在SQL中存储文件路径并将文件单独存储在服务器上并为其分别进行备份过程
  2. 在将文件放到sql server之前压缩文件,它会为你节省一些特别是纯文本格式的地方,虽然它对所有已经压缩的格式(.png,office .docx,.xlsx等等)无济于事
  3. 使用FILESTREAM和差异备份(Example
  4. 类似的问题:Store Files in SQL Server or keep them on the File Server?

答案 1 :(得分:2)

您的主要问题似乎是备份的大小。如果您每小时进行完整备份,则可以通过执行差异备份来节省空间。

如果没有全部更改,则无需备份所有内容,因此您只需要备份上次备份中未包含的新数据。

这可以为您节省大量的空间和时间,通常是更好的做法。

我建议您考虑实施备用轮换方案。您可以在此处找到更多相关信息:

http://en.wikipedia.org/wiki/Backup_rotation_scheme

我还建议您将文件保存在文件流数据类型字段中,以减少在mdf文件中使用大页面对性能的影响。

答案 2 :(得分:0)

如果您担心备份大小 - 将文档保存在文件系统和DB存储中只有补丁。

如果您担心备份一致性 - 将文档存储在数据库