Eu configuraria um rastreamento no SQL Server Profiler para ver quais configurações de opções SET a conexão está usando ao se conectar a partir do código .NET e quais configurações estão sendo usadas no SSMS. Por configurações de opções SET, quero dizer
ARITHABORT
ANSI_NULLS
CONCAT_NULL_YIELDS_NULL
//etc
Dê uma olhada em MSDN para uma tabela de opções
Eu vi o problema antes onde as opções eram diferentes (nesse caso,
ARITHABORT
) e a diferença de desempenho foi enorme.