나는 약 3000 행의 datatable 있습니다. 각 행은 데이터베이스 테이블에 삽입되어야합니다. 현재, 나는 아래로 foreach 루프를 실행하고 있습니다 : 데이터베이스에 C# 여러 개의 병렬 삽입
obj_AseCommand.CommandText = sql_proc;
obj_AseCommand.CommandType = CommandType.StoredProcedure;
obj_AseCommand.Connection = db_Conn;
obj_AseCommand.Connection.Open();
foreach (DataRow dr in dt.Rows)
{
obj_AseCommand.Parameters.AddWithValue("@a", dr["a"]);
obj_AseCommand.Parameters.AddWithValue("@b", dr["b"]);
obj_AseCommand.Parameters.AddWithValue("@c", dr["c"]);
obj_AseCommand.ExecuteNonQuery();
obj_AseCommand.Parameters.Clear();
}
obj_AseCommand.Connection.Close();
는 위의 방법은 3000 행을 삽입하기 위해 약 10 분 정도 소요됩니다 이후이 평행 데이터베이스에 SP를 수행 할 수있는 방법을 알려 주시기 바랍니다 수 있습니다. 그것은 또한 각 연결에 대한 쓰레드를 소비하므로 DB 삽입을 병렬화하는
Parallel.ForEach
를 사용하여 돌이켜에서
의이다 다만, 데이터베이스에 대한
datatable
를 기록? 이것이 어떤 입력 파일에서 온 것이라면, 어떤 관리 도구로 데이터베이스로 직접 가져 오지 않겠습니까? – ShayD데이터 테이블은 다른 데이터베이스 (마스터 데이터베이스)에서 채워집니다. 내 목표는 마스터 데이터베이스에서 데이터를 가져오고 내 데이터베이스에 삽입하는 것입니다. 저장 프로 시저 내 데이터베이스에 데이터를 삽입하는 데 사용됩니다. – Harsh
대량 삽입물 또는 링크 서버를 사용하고 SQL에서 데이터를 가져 와서 삽입하지 마시오. – 3dd