Algumas pessoas usam essa técnica
... WHERE @itemid IS NULL OR tbl.itemid = @itemid
Isso garante que você nunca obterá uma busca de índice na coluna itemid.
Uma abordagem melhor se a tabela for grande é dividir a consulta em 2 casos separados
IF(@itemid IS NULL)
SELECT foo FROM bar
ELSE
SELECT foo FROM bar WHERE itemid = @itemid
Se o número de combinações for muito grande, você pode considerar o SQL dinâmico. Certifique-se de entender a injeção de SQL primeiro.
Ref:Condições de pesquisa dinâmica em T-SQL