AddWithValue sem DBType, fazendo com que as consultas sejam executadas lentamente

Eu tenho usado cmd.Parameters.AddWithValue e não especificando um DBType (int, varchar, ...) para executar consultas. Depois de analisar o SQL Profiler, parece que as consultas executadas com esse método são muito mais lentas do que quando você especifica o tipo de dados.

Para ter uma idéia de quanto é mais lento, aqui está um exemplo. A consulta é uma pesquisa simples em uma única tabela e a coluna na instrução where é indexada. Ao especificar o tipo de dados, uma determinada consulta é executada em aproximadamente 0 MS (muito pequeno para o servidor sql medir) e requer 41 leituras. Quando removo o DBType, pode demorar cerca de 200 ms e 10000 leituras para a consulta ser concluída.

Não tenho certeza se é apenas a declaração incorreta dos valores do SQL Profiler ou se esses valores estão realmente corretos, mas são reproduzíveis, pois posso adicionar e remover o DBType e produzirá os valores fornecidos no SQL Profiler.

Mais alguém encontrou esse problema e uma maneira simples de corrigi-lo. Percebo que eu poderia adicionar o tipo de dados em todo o meu código, mas isso parece ser um monte de coisas para adicionar e, se houver uma maneira mais fácil de corrigi-lo, isso seria muito apreciado.

[EDITAR]

Após alguns testes iniciais (executando os dois cenários em um loop), parece que os valores que o criador de perfis fornece são precisos.

Assim como as informações adicionadas, estou executando o .Net 2.0 no Windows XP Pro e o SQL Server 2000 no Windows 2000 para o banco de dados.

[ATUALIZAR]

Depois de algumas pesquisas, consegui encontrar issopublicação no blog, que podem estar relacionados. Parece que os valores de sequência em .Net (uma vez que são unicode) são criados automaticamente como parâmetros nvarchar. Vou ter que esperar até segunda-feira, quando entrar no trabalho, para ver se consigo fazer algo em torno disso que resolva o problema. Ainda parece que eu teria que definir o tipo de dados, que era o que eu estava tentando evitar.

Esse problema não aparece em todas as consultas que fiz, apenas em algumas poucas, por isso ainda posso recorrer à definição do DBType nas consultas com problemas, mas estou procurando uma solução mais generalizada para o problema.

questionAnswers(3)

yourAnswerToTheQuestion