[英]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.