我正在开发一个使用 Filestream / FileTable 作为文档存储的自定义文档管理系统。
目录结构如下:APPNameDir --> Year --> Month --> Files
+ APPNameDir
+ 2015
+ 12
File 1.pdf
File 2.pdf
+ 2016
+ 01
File 3.pdf
File 4.pdf
+ 02
File 5.pdf
File 6.pdf
我想要做的是从 C# 代码调用存储过程并传递文件夹树(例如(BooksApp/2016/03)和 file_stream 数据。
然后,在存储过程中我想检查文件夹树是否已经存在,否则创建不存在的文件夹。
我看过这篇文章,所以我可以一次创建一个文件夹,但不能一次创建多个文件夹。
我想我可以检查 2016 是否不存在,然后创建它。然后,检查第 03 个月是否不存在,然后创建它等等,但我担心数据库中有数百万个文档时的性能,因为我想在不到 2 秒的时间内从 Web 应用程序插入文档(这是一个限制)。几天前我做了一些性能基准测试,当数据库中有 100K 文档时,从 Web 应用程序插入文档需要 100 到 300 毫秒。如果我必须查询每个目录的 FileTable,然后在它们不存在时创建它们,我担心当数据库中的文档数量如此之多时性能会降低。
您是否在项目中遇到过类似的需求?任何想法?