简体   繁体   中英

SQL Server : query apply in where clause with IS NOT Null on Column that contains Json Object taking more time

I have a table in a SQL Server database that columns contain JSON object and that column I iterating through where clause condition with IN NOT NULL, by using openJson JSON_Value and JSON_Query function.The query is running successfully but it taking more time to response output.only in 4 rows taking 7sec. Then what about if table having 1000 of rows.

Table looks lie this:

在此处输入图片说明

在此处输入图片说明

Here is the query on table that's I'm using:

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

So, how to optimize above query so that it takes less time?

I would suggest altering the table:

ALTER TABLE dbo.Table
ADD Value AS JSON_VALUE(JsonData, '$.Details.Name.Value');

then creating a non clustered index on value column

CREATE NONCLUSTERED INDEX IX_ParsedValue ON dbo.Table (Value)

This will speed up the query.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM