【问题标题】:Save document in SQL Server database将文档保存在 SQL Server 数据库中
【发布时间】:2012-02-18 07:12:15
【问题描述】:

我有一个 C#/SQL Server 项目。并且可以从不同的地方访问数据库(这三个地方之间没有局域网),并且数据库中的数据很重要,所以我在过去 30 天内每小时都在恢复或我的数据库。

我要保存的文件是传真、excel、word、pdf 类型的数据,没有格式化。所以不可能在其中获取数据。

问题是如何将文档存储在 SQL Server 中,我不想因为备份大小的增加而将其大小放大太多。

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

【问题讨论】:

    标签: c# sql-server document binaryfiles


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

    • 谢谢,我认为文件流对我来说是最好的解决方案。让我试试。如果我能实现我想要的,我会分享我的解决方案。
    【解决方案2】:

    如果你想存储一些东西,它就会发生。您有多种选择:

    1. 仅在 SQL 中存储文件路径,并将文件单独存储在服务器上,并为它们提供单独的备份过程
    2. 在将文件放入 sql server 之前压缩文件,它会为您节省一些地方,尤其是纯文本格式,尽管它对所有已压缩的格式(.png、office .docx、.xlsx 等)没有帮助李>
    3. 使用 FILESTREAM 和差异备份 (Example)

    类似问题:Store Files in SQL Server or keep them on the File Server?

    【讨论】:

    • 我认为第一种方法最好
    【解决方案3】:

    如果您担心备份大小 - 将文档保存在文件系统和数据库存储中,仅补丁。

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

    【讨论】:

    • 是的,问题主要是尺寸。我无法将其保存在文件系统中,因为我在这 3 个地方之间没有 vpn 连接。
    • 您不需要 - 将文件存储在服务器上的文件系统中。可能您可能想使用一些自定义 CLR 函数来将文件内容保存到文件系统/从文件系统返回文件内容,
    猜你喜欢
    • 2012-04-25
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多