VERIFIQUE SE O DATA TYPE DA VARIÁVEL É IGUAL AO DA COLUNA PESQUISADA.
Vamos criar uma tabela chamada Produto, uma coluna chamada NomeProduto do tipo varchar(50) e criar um índice para ela.
CREATE TABLE #Produto(NomeProduto varchar(50))
GO
CREATE INDEX IX_TESTE on #Produto(NomeProduto)
GO
Criaremos uns 2000 registros
INSERT INTO #Produto
SELECT 'Teste' + convert(varchar(100),rand())
GO 2000
Vamos fazer duas pesquisas, uma usando variável do tipo varchar(50) e outra do tipo nvarchar(50)
DECLARE @Nome1 nvarchar(50)
DECLARE @Nome2 varchar(50)
Select @Nome1 = 'Teste'
Select @Nome2 = 'Teste'
SELECT * FROM #Produto WHERE NomeProduto = @Nome1
SELECT * FROM #Produto WHERE NomeProduto = @Nome2
Analisando a imagem, percebemos que quando usamos um data type errado, a pesquisa utilizará um Scan(mais lento) ao invés de um Seek.
Apagando a tabela:
DROP TABLE #Produto