[英]SQL Server : query apply in where clause with IS NOT Null on Column that contains Json Object taking more time
我在SQL Server数据库中有一个表,该表的列包含JSON对象,并且我使用openJson JSON_Value和JSON_Query函数使用IN NOT NULL遍历where子句条件。该查询已成功运行,但需要更多时间来响应输出。仅在4行中耗时7秒。 那如果表有1000行呢?
表看起来像这样:
这是我正在使用的表查询:
SELECT TOP (1000)
[Id], JSON_Value(objectJson,'$.Details.Name.Value') AS objectValue
FROM
[geodb].[dbo].[userDetails]
WHERE
JSON_QUERY(jsonData,'$."1bf1548c-3703-88de-108e-bf7c4578c912"') IS NOT NULL
那么,如何优化上述查询,以减少时间呢?
我建议更改表:
ALTER TABLE dbo.Table
ADD Value AS JSON_VALUE(JsonData, '$.Details.Name.Value');
然后在值列上创建非聚集索引
CREATE NONCLUSTERED INDEX IX_ParsedValue ON dbo.Table (Value)
这样可以加快查询速度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.