首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >存储文件收据的更好方法

存储文件收据的更好方法
EN

Database Administration用户
提问于 2015-12-14 19:13:34
回答 2查看 2.2K关注 0票数 4

我有一个金融系统,需要附上PDF收据的每一个记录保存在我的系统。

这些收据将被一个适当的装置扫描到电脑上,并保存在PDF中,储存在我的数据库中。

今天,系统将PDF文件保存为varbinary(max),但是由于表中的行数,数据库的文件大小增长得太快了。平均文件大小约为1至2MB。

在不影响我的数据库性能的情况下存储这类文件的最佳方法是什么?

EN

回答 2

Database Administration用户

回答已采纳

发布于 2015-12-14 19:51:30

您不会牺牲性能,就像使用var二进制(MAX)的数据库性能一样。您不需要搜索var二进制文件(MAX)。您没有为该列建立索引。

表中的优点是单次一致备份。不利的一面是更大的后援。

将文件传递给客户端var二进制文件(MAX)的效率将低于FILESTEAM或文件系统。

1-2毫巴相对较小。如果是200+ mb,那么您通常希望避免存储在var二进制文件(MAX)中。

如果单是表大小就有问题,那么费莱斯特亚姆可能是最好的解决方案。这不会影响数据库性能,也不会将文件存储在表中。

FILESTREAM使基于Server的应用程序能够在文件系统中存储非结构化数据(如文档和图像)。应用程序可以利用丰富的流API和文件系统的性能,同时维护非结构化数据和相应的结构化数据之间的事务一致性。

从许可的角度来看,我非常肯定FILESTREAM不算数据库大小。与使用10 not数据库限制的快递一样,FILESTREAM不算在内。

另一个好处是,如果您在PDF上有OCR和Adobe,您可以全文搜索文档。但是你也可以用FILESTREAM做这件事--从我看到的不是。

或者您可以完全独立地管理文件,并且只在SQL中存储路径。

票数 1
EN

Database Administration用户

发布于 2016-01-31 06:27:18

最好的方法,就像Documentum和其他主要包使用的那样,就是在数据库中存储一个路径和文件名,并将文件放在那个位置。

对于更小的数据库大小,有一个公共路径表,然后根据该行的短主键或候选键创建文件名;然后只需要存储路径ID和扩展。

如果您的财务合规规则要求完整性或篡改保护,您可以与您的遵从性或法律组检查,看看在数据库中存储散列或在该位置存储公钥/私钥签名是否足够。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/123650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档