0

我有一个包含 3M JSON 行的表。

我正在尝试解析 JSON 并将数据插入另一个表。但是 OPENJSON 需要 50 秒来解析 500K 行。

我正在使用的查询


select   
    top 500000
    qse.*
from 
    dbo.QueryStore qs
    cross apply openjson(qs.Query) 
    with
        (

            Col1 nvarchar(max), Col2 nvarchar(max), Col3 nvarchar(max), Col4 nvarchar(max), Col5 nvarchar(max), Col6 nvarchar(max), Col7 nvarchar(max), Col8 nvarchar(max), Col9 nvarchar(max), Col10 nvarchar(max), Col11 nvarchar(max), Col12 nvarchar(max), Col13 nvarchar(max), Col14 nvarchar(max), Col15 nvarchar(max), Col16 nvarchar(max), Col17 nvarchar(max), Col18 nvarchar(max), Col19 nvarchar(max), Col20 nvarchar(max), Col21 nvarchar(max), Col22 nvarchar(max), Col23 nvarchar(max), Col24 nvarchar(max), Col25 nvarchar(max), Col26 nvarchar(max), Col27 nvarchar(max), Col28 nvarchar(max), Col29 nvarchar(max), Col30 nvarchar(max), Col31 nvarchar(max), Col32 nvarchar(max), Col33 nvarchar(max), Col34 nvarchar(max), Col35 nvarchar(max), Col36 nvarchar(max)
        )qse

如何提高 OPENJSON 的速度以快速解析 3M 行?

您的帮助和建议将不胜感激。

4

1 回答 1

0

您的所有列是否都包含更多 JSON?因为不包含更多 JSON 的字符串列应该是(最大长度)NVARCHAR(4000)。如果该字段包含一个数字,那么它应该给出一个数字 SQL 数据类型(根据需要)而不是 NVARCHAR(MAX)。这应该会减少分配并加快速度。

于 2020-09-17T14:19:41.807 回答