簡體   English   中英

SQL Server:在包含Json Object的列上使用IS NOT Null的where子句中的查詢應用時間更長

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM