Following two queries produce exactly the same execution plan on SQL Server 2008 R2.
But I feel like the second query should perform better.
Why do I see the same query execution plan for these two?
DECLARE @user_id INT;
SET @user_id = 13;
IF @user_id IN (SELECT [USER_ID]
FROM DBO.[USER]
WHERE HOME_CUSTOMIZATION IS NOT NULL)
BEGIN
PRINT('USER HAS HOME CUSTOMIZATION...');
END
ELSE
BEGIN
PRINT('USER HAS NO HOME CUSTOMIZATION...');
END;
IF EXISTS (SELECT [USER_ID]
FROM DBO.[USER]
WHERE [USER_ID] = @user_id
AND HOME_CUSTOMIZATION IS NOT NULL)
BEGIN
PRINT('USER HAS HOME CUSTOMIZATION...');
END
ELSE
BEGIN
PRINT('USER HAS NO HOME CUSTOMIZATION...');
END