I have tried to create a non-clustered index on the fields that are in the output list which are created_by and Chk1002 .I don't have a column called Chk1002 anywhere . I have read [here][1] that it has to do with the Cursor . Is there any way I could keep the Cursor and get reduce the cost of the Query plan and get rid of the Key Lookup? DECLARE @ClaimUniqueNo INT DECLARE ClaimAudit CURSOR FOR SELECT CA.Claim_Audit_ID, CA.Claim_Audit_Action, CA.Create_Date, CA.Created_By, C.Claim_Status FROM dbo.Claim_Audit_Tbl CA LEFT JOIN Claim_Tbl C ON CA.Claim_Unique_No = C.Claim_Unique_No WHERE CA.Claim_Unique_No = @ClaimUniqueNo ORDER BY Create_Date ASC [![enter image description here][2]][2] [![enter image description here][3]][3] [1]: https://www.sqlskills.com/blogs/paul/adventures-in-query-tuning-unexpected-key-lookups/ [2]: https://i.sstatic.net/ai448.png [3]: https://i.sstatic.net/IgEvj.png