1

我有一个表,其中包含一些标准字段以及其中一列中的 JSON 文档。我们使用 SQL Server 2017 存储所有内容,数据由使用 Entity Framework 6 的 C# 应用程序使用。表本身可能有数万个条目,这些条目(或者更确切地说,它们上的 JSON 列)必须是每天更新。我试图弄清楚使用什么数据类型来获得最佳性能。

我读过这个:

SQL Server 2008 文件流性能

目前,JSON 文档以 30-200 KB 的文件形式出现。有可能超过 256 KB 的障碍,但目前超过 1 MB 的可能性非常低。那将指向 NVARCHAR。也在这里:

存储 JSON 字符串的最佳 SQL 数据类型是什么?

人们建议将 JSON 存储为 NVARCHAR(MAX) 是要走的路。

但是,有两件事让我担心:

  1. 首先,随着时间的推移会出现碎片化,有这么多的作者(这是 Filestream 似乎具有优势的领域之一,无论列大小如何)。我不确定这会如何影响性能......
  2. 其次,我不确定在数据库中存储这么多文本数据是否会因为大小而减慢速度?据我了解,FileStream 的另一个优点是数据库大小成本相当稳定,无论磁盘上的文件大小如何,这有助于随着时间的推移保持性能。还是我错了?

考虑到我的用例,你会选择什么?

4

1 回答 1

1

这不仅仅是性能问题,还涉及开发时间、知识和维护。如果一切都已经在使用实体框架的 c# 中了,为什么还要使用更复杂的东西呢?我的方法是使用开发人员最熟悉的解决方案,直到出现性能瓶颈,然后进行基准测试。

两个具有实际表大小的解决方案之间的比较将使您真正了解是否值得进行任何调整。

于 2020-07-21T11:35:54.900 回答