j'ai un SqlDataAdapter qui est rempli avec 21 lignes de données (4 colonnes). Le sproc qui le génère est renvoyé dans SQL Mgmt Studio en quelques secondes, mais le fichier .Fill() prend 5 minutes.SqlDataAdapter.Fill() Timeout - Sproc sous-jacente revient rapidement
ArrayList ret = new ArrayList();
SqlDataAdapter da = null;
SqlCommand cmd = null;
cmd = base.GetStoredProc("usp_dsp_Stuff"); //Returns immediately in MSSMS.
cmd.CommandTimeout = 3600; // Set to 6 min - debug only
base.AddParameter(ref cmd, "@Param1", ParameterDirection.Input, SqlDbType.BigInt, 8, 19, 0, theParam1);
base.AddParameter(ref cmd, "@Param2", ParameterDirection.Input, SqlDbType.BigInt, 8, 19, 0, theParam2);
base.AddParameter(ref cmd, "@Param3", ParameterDirection.Input, SqlDbType.Char, 1, 'C');
da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt); //Takes 5 minutes.
Des idées?
Merci d'avance! -Chris
Cela a fonctionné pour moi aussi, je recevais un temps même après avoir tiré 10 enregistrements de la fonction d'une valeur de table. – Sergey
J'ai eu le même problème en cours d'exécution d'une requête, mais en utilisant "WITH (NOLOCK)" n'a pas aidé. Ajouter "OPTION (RECOMPILE)" à la fin de ma requête a résolu le problème. – sharpguru