Tenho uma stored procedure que quando executo pelo Sql Server Management Studio a mesma demora menos de 1 segundo.
Quando faço uma chamada da mesma dentro de um projeto .NET essa consulta leva 2 minutos e 30 segundos utilizando os mesmos parâmetros (abaixo exemplo do código).
Esta stored procedure possui apenas um select, então coloquei diretamente a consulta dentro do fonte e a consulta foi feita em 40 segundos.
Existe algum motivo para essa lentidão? Alguém já viu alguma situação desse tipo, ou melhor ainda, sabe a solução?
(Obs.: Aplicação em 3 camadas, com interface em WebForm, Visual Studio 2010 e SQL Server 2008 R2)
Grato
--------------------------
public override int GetQtde(int param1, int param2, int param3)
{
SqlConnection con = (SqlConnection)DBConnections.CreateConnection(TipoBanco.SQL_Server);
con.Open();
try
{
SqlCommand cmd = new SqlCommand("nome-da-sp", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@param1", SqlDbType.Int).Value = param1;
cmd.Parameters.Add("@param2", SqlDbType.Int).Value = param2;
cmd.Parameters.Add("@param3", SqlDbType.Int).Value = param3;
cmd.CommandTimeout = 600;
int qtde = Convert.ToInt32(cmd.ExecuteScalar());
return qtde;
}
finally
{
con.Close();
}
}