У меня есть SqlDataAdapter, который заполняется 33k строками данных (около 15 столбцов). При выполнении запроса в MS SSMS я получаю свои строки примерно за 5 секунд. При использовании моего кода, я получаю тайм-аут, даже установив параметр времени ожидания до 120 сек:SqlDataAdapter.fill таймаут, запрос менее 5 секунд
private static DataTable getResult(string query, int someId, SqlConnection myConn)
{
SqlCommand myCmd = new SqlCommand(query, myConn);
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
myCmd.Parameters.Add("@someId", SqlDbType.Int);
myCmd.Parameters["@someId"].Value = someId;
da.SelectCommand = myCmd;
da.SelectCommand.CommandTimeout = 120;
da.Fill(dt);
return dt;
}
Я уже пытался советы от веб-сайтов, таких как получение все большего числа соединений, а также значения таймаута без результата к этот день ...
Любые идеи о том, как избежать ошибки таймаута?
Спасибо за понимание.
Вы уверены, что вы работаете один и тот же запрос в SSMS, как и в методе GetResult? Также является ли ваша строка строки входа одинаковой? Вы пытались просто выполнить команду, чтобы увидеть результаты, прежде чем пытаться поместить их в DataTable? – xszaboj
Попробуйте выполнить запрос в новом окне MS SSMS. Если вы запустили запрос несколько раз в одном окне, он будет выполнять тот же план запроса и выполнить его быстрее. Проверьте, сколько времени потребуется в новом окне запроса. – Niar
Строка запроса и подключения строго одинаковы. Временные кружки одинаковы везде и всегда, когда я запускаю запрос в MS SSMS. – Wingi