Sample Header Ad - 728x90

Resource consuming query

2 votes
1 answer
88 views
I have found below CPU consuming query with a query cost of 1540. I have tried creating appropriate indexes which reduced the query cost to 1234 but still, the query is expensive. Index Created : CREATE NONCLUSTERED drop INDEX [IX-AAD_RESP_NOW-AAD_DATE] ON [dbo].[MST_AR_AS_ON_DATE] ([AAD_RESP_NOW],[AAD_DATE]) INCLUDE ([AAD_LOC_CODE],[AAD_00TO30],[AAD_31TO60],[AAD_61TO90],[AAD_91TO120],[AAD_121TO150],[AAD_151TO180],[AAD_180PLUS]) GO Query: SELECT CAST(YEAR(A.AAD_DATE) AS VARCHAR(4))+' - '+RIGHT('00'+CAST(MONTH(A.AAD_DATE) AS VARCHAR(2)),2), 'Insurance', SUM(A.AAD_00TO30+A.AAD_31TO60+A.AAD_61TO90+A.AAD_91TO120+A.AAD_121TO150+A.AAD_151TO180+A.AAD_180PLUS) FROM MST_AR_AS_ON_DATE A WHERE A.AAD_RESP_NOW = (SELECT MAX(B.AAD_DATE) FROM MST_AR_AS_ON_DATE B WHERE MONTH(B.AAD_DATE) = MONTH(A.AAD_DATE) AND YEAR(B.AAD_DATE) = YEAR(A.AAD_DATE)) AND A.AAD_DATE >= '2019-01-01' AND A.AAD_DATE = (SELECT MAX(B.AAD_DATE) FROM MST_AR_AS_ON_DATE B WHERE MONTH(B.AAD_DATE) = MONTH(A.AAD_DATE) AND YEAR(B.AAD_DATE) = YEAR(A.AAD_DATE)) AND A.AAD_DATE >= '2019-01-01' AND A.AAD_DATE <= '2022-05-18 23:59:59' AND (AAD_RENDOC_ID = -1 OR -1 = -1 ) AND (AAD_LOC_CODE LIKE '%%' OR '' = 'ALL') GROUP BY A.AAD_DATE ORDER BY 1,2 DESC I am not a developer hence I am not able to optimise the query on query level. I will appreciate if anyone can guide me what changes are required to fine-tune this query. Thank you in advance. Please find estimated execution plan below: https://www.brentozar.com/pastetheplan/?id=r1xPQCKPq Also, Actual execution plan is uploaded in below link. https://www.brentozar.com/pastetheplan/?id=H1JG3q6_c
Asked by Aditya (33 rep)
May 19, 2022, 09:17 AM
Last activity: Jun 8, 2022, 08:12 AM