У меня есть таблица с несколькими стандартными полями плюс документ JSON в одном из столбцов. Мы используем SQL Server 2017 для хранения всего, и данные потребляются приложением C # с использованием Entity Framework 6. Сама таблица, возможно, будет иметь десятки тысяч записей, и эти записи (или, скорее, столбец JSON на них) необходимо будет обновлять ежедневно. Я пытаюсь понять, какой тип данных использовать для максимальной производительности.
Я читал это:
Производительность FILESTREAM SQL Server 2008
В настоящее время документы JSON поступают в виде файлов размером от 30 до 200 КБ. Существует вероятность превышения барьера в 256 КБ, но вероятность превышения 1 МБ в настоящее время очень мала. Это указывает на NVARCHAR. Также здесь:
Какой тип данных SQL лучше всего подходит для хранения строки JSON?
Люди предполагают, что хранение JSON как NVARCHAR (MAX) - это лучший способ.
Однако меня беспокоят две вещи:
- Во-первых, это фрагментация с течением времени при таком большом количестве писателей (это одна из областей, в которых Filestream имеет преимущество независимо от размера столбца). Я не уверен, как это повлияет на производительность ...
- Во-вторых, я не уверен, не замедлит ли хранение такого количества текстовых данных в базе данных только из-за размера? Насколько я понимаю, еще одним преимуществом FileStream является то, что стоимость размера базы данных довольно постоянна, независимо от размера файла на диске, и это помогает поддерживать производительность с течением времени. Или я не прав?
Что бы вы выбрали, учитывая мой вариант использования?