在 SQL Server 2016 中调整查询的缓冲区大小
Adjusting the buffer size for a query in SQL Server 2016
我有一个包含超过一百万个条目的 JSON 文件(最初是 MongoDB 文档),将使用 OPENROWSET 将其导入 SQL 服务器 table SQL 服务器中的 BULK() 命令。该查询对于小型 JSON 文件非常有效,但对于较大的文件,它会出现以下错误:
JSON 文本格式不正确。在位置 0 处发现意外字符。
意外字符的值对于不同的 JSON 文件是不同的。我的 JSON 文件以 JSON 数组的形式存储数据。文件大小约为 300 MB。
我认为这个问题是因为在执行查询期间,只有文件的部分内容被加载到缓冲区,因此,JSON 文本的格式似乎不正确SQL服务器。
因此,我现在关心的是调整查询执行的缓冲区大小,以便将文件的全部内容一次加载到缓冲区内存中。
我怀疑问题与缓冲区大小有关。需要格式文件才能导入超过 8000 个字符的列 OPENROWSET(BULK)。如果仍有问题,请将 SQL 语句添加到您的问题中。
我有一个包含超过一百万个条目的 JSON 文件(最初是 MongoDB 文档),将使用 OPENROWSET 将其导入 SQL 服务器 table SQL 服务器中的 BULK() 命令。该查询对于小型 JSON 文件非常有效,但对于较大的文件,它会出现以下错误:
JSON 文本格式不正确。在位置 0 处发现意外字符。
意外字符的值对于不同的 JSON 文件是不同的。我的 JSON 文件以 JSON 数组的形式存储数据。文件大小约为 300 MB。
我认为这个问题是因为在执行查询期间,只有文件的部分内容被加载到缓冲区,因此,JSON 文本的格式似乎不正确SQL服务器。
因此,我现在关心的是调整查询执行的缓冲区大小,以便将文件的全部内容一次加载到缓冲区内存中。
我怀疑问题与缓冲区大小有关。需要格式文件才能导入超过 8000 个字符的列 OPENROWSET(BULK)。如果仍有问题,请将 SQL 语句添加到您的问题中。