I have this query here which takes about 8 seconds:declare @BranchID varchar (10), @AccountID varchar (20)set @BranchID='BROC'set @AccountID='%'SELECT DISTINCT*FROM Claim C Inner JOIN ClaimAssist AS ca ON ca.ClaimID = c.ID WHERE (ca.BranchID = @BranchID or @BranchID = '%') AND (@AccountID = '%')
When I change the select to this, I get under a second:SELECT DISTINCT*FROM Claim C Inner JOIN ClaimAssist AS ca ON ca.ClaimID = c.ID WHERE (ca.BranchID = @BranchID or @BranchID = '%') AND ('%' = '%') Anyone any idea what gives?I am guessing SQL Server makes up its mind what its going to do before evaluating the parameter values. Any way to get SQL Server to evaluate the parameters first, then make an Execution Plan?