いくつかの標準フィールドと、列の 1 つに JSON ドキュメントを含むテーブルがあります。SQL Server 2017 を使用してすべてを格納し、データは Entity Framework 6 を使用する C# アプリケーションによって消費されます。テーブル自体には数万のエントリが含まれる可能性があり、これらのエントリ (またはそれらの JSON 列) は、毎日更新。最高のパフォーマンスを得るために使用するデータ型を見つけようとしています。
私はこれを読みました:
SQL Server 2008 FILESTREAM のパフォーマンス
現在、JSON ドキュメントは 30 ~ 200 KB の範囲のファイルとして提供されていました。256 KB の壁を超える可能性はありますが、1 MB を超える可能性は現在のところ非常に低いです。それは NVARCHAR を指します。ここもまた:
JSON文字列を保存するのに最適なSQLデータ型は何ですか?
人々は、JSON を NVARCHAR(MAX) として保存する方法を提案しています。
ただし、次の 2 つの点が気になります。
- まず、非常に多くのライターによる時間の経過に伴う断片化です (これは、列のサイズに関係なく、Filestream が有利であると思われる領域の 1 つです)。それがパフォーマンスにどう影響するかはわかりません...
- 2 つ目は、データベースに大量のテキスト データを格納しても、サイズだけが原因で速度が低下しないかどうかはわかりません。私が理解している限り、FileStream のもう 1 つの利点は、ディスク上のファイル サイズに関係なく、データベース サイズのコストがかなり一定であることです。これにより、時間の経過とともにパフォーマンスが維持されます。それとも私が間違っていますか?
私のユースケースを考えると、何を選択しますか?