c# - 在SQL Server中存储数百万个100kb的PDF

标签 c# sql sql-server sql-server-2014

我有一个检查每个工厂机器并产生100kb左右PDF输出的软件。这是计划的12个小时的任务。我有超过18.000台机器,随着新工厂的增加,它会增加。大约一个月内,我获得了上百万条PDF文档记录。如果机器中有任何问题,我还需要向他们展示带有过滤器选项的最终用户。

我在后端和SQL Server 2014中使用C#ASP.NET。

存储它们的有效方法是什么?直接在具有nvarbinary(max)或文件系统的DB中?

我打算使用文件服务器,但是link使我感到困惑,所以我想问一下。

-编辑-

与经理讨论后,我们决定使用以下方法。感谢大家的有用评论,您做出了很多贡献。

我们将以文本格式将数据存储在有意义的表结构中。当最终用户想要PDF时,我们将创建PDF并及时提供。不会存储它们。我们还将S3 CDN用于PDF中的图像,并将其元数据保存在DB中。

当需要新报告时,开发人员将首先从db获取模板,将通过报告编辑器实现细节,然后将该xml脚本以及用户参数(语言,权限等)发送到基于SOA(面向服务的体系结构)的机制。我们的SOA引擎将评估请求,用正确的数据和语言填充xml脚本,进行渲染,然后将其发送回用户。

非常感谢。

最佳答案

如果要写入的PDF大部分相同,则可以将变量存储到数据库中。然后,当有人请求报告或任何报告时,请拉出PDF模板文件,并用从数据库中检索到的适当值填充它。

关于c# - 在SQL Server中存储数百万个100kb的PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59303016/

相关文章:

c# - 提供者未返回 ProviderManifest 实例

mysql - 在 sql 中获取错误的日期列差异?

php - PDOStatement::nextRowset() 不适用于 dblib 和 MSSQL

sql - 需要根据当前日期选择重复项

sql - 如何在 SQL Server 中创建 rownum

c# - MVC4 与 Telerik 编辑器无法正常工作

c# - 将两种形式作为不同的线程运行(或至少 2 种形式运行 "parallel")

MySQL 从最后 N 组中选择所有行

mysql - 在 MySQL 查询中将时间戳转换为日期

java - 空检查 + 取消引用在同一行