Nota de Migração: Este artigo foi migrado para o Portal Wiki em Português. O conteúdo será atualizado aqui http://social.technet.microsoft.com/wiki/pt-br/contents/articles/12564.dica-cuidado-com-data-type-diferente.aspx.


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

Agora vamos analisar o resultado da pesquisa: 

Analisando a imagem, percebemos que quando usamos um data type errado, a pesquisa utilizará um Scan(mais lento) ao invés de um Seek.

Ozimar Henrique
http://ozimar.com