Я работаю над пользовательской системой управления документами, которая использует Filestream/FileTable в качестве хранилища документов.Создание дерева каталогов FileTable
Структура каталогов выглядит следующим образом: APPNameDir -> Год -> Месяц -> Файлы
+ 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.
Затем в хранимой процедуре я хотел бы проверить, существует ли дерево папок, в противном случае создаются папки, которые не существуют.
Я видел это post, поэтому я могу создать одну папку за раз, но не сразу несколько папок.
Я думаю, что я могу проверить, не существует ли 2016, а затем создать его. Затем проверьте, не существует ли месяц 03, затем создайте его и так далее, но я беспокоюсь о производительности, когда миллионы документов находятся в базе данных, потому что я хочу вставить документ из веб-приложения менее чем за 2 секунды (это ограничение). Несколько дней назад я сделал несколько сканеров производительности, а вставка документа из веб-приложения заняла от 100 до 300 миллисекунд, когда в базе данных было 100K документов. Если мне нужно запросить FileTable для каждого каталога, а затем создать их, если они не существуют, я боюсь, что производительность уменьшится при таком количестве документов в БД.
У вас возникли аналогичные потребности в ваших проектах? Есть идеи?
Я поставил ваш вопрос как действительный. Я, наконец, создал SOA-решение с dapper вместо ADO.NET и работает очень хорошо. Большое спасибо – Alvmad