현재 C# windowform 으로 쿼리문을 연속으로 16개 정도 수행하는 프로그램을 만들고 있는데
행이 22000개 가량되는 데이터를 csv로 변환하거나 db에 직접 insert 시키는 경우 타임아웃이 발생합니다.
"실행 시간 제한을 초과했습니다. ..." 이렇게 발생하네요.
현재까지 사용해본 방법은
1> commandtimeout = 0;
2> sp_configure 'remote query timeout', 0
3> connectiontimeout = 0;
등이 있는데 혹시 다른 방법은 없을지.. 아시는분 있으신가요
ssms에서 직접 쿼리문 실행의 경우 1분 40초 가량 걸려야 결과가 나오고 있습니다.
아니면 이런 경험이 있으셨던 분이 있으신지.. 있으시다면 어떤식으로 해결하셨는지 궁금합니다.
현재 문제가 발생하는 구간의 코드 입니다.
using (SqlCommand sqlcmd = new SqlCommand(querystring, dbconnection))
{
sqlcmd.CommandTimeout = 60000;
sqlcmd.ExecuteNonQuery();
SqlDataAdapter adapter9 = new SqlDataAdapter(sqlcmd.CommandText, dbconnection);
data_table = new DataTable();
adapter.Fill(data_table);
StreamWriter sw = new StreamWriter(path\name.csv, false, System.Text.Encoding.UTF8);
sw.Write(header);
WriteToStream(sw, data_table, sqlcmd);
}
감사합니다.
commandTimeout = 0 or 넉넉한 시간값을 주면 해결이 되어야 합니다.