DataTable에서 데이터베이스 가져오기 가속화: 모범 사례
DataTables에서 데이터베이스로 대규모 데이터 세트를 가져오려면 처리 시간을 최소화하기 위한 효율적인 기술이 필요합니다. foreach
루프를 사용한 행별 삽입은 일반적인 접근 방식이지만, 상당한 데이터세트에는 비효율적입니다.
뛰어난 솔루션은 SqlBulkCopy
으로, 저장 프로시저 없이도 크게 향상된 성능을 제공합니다.
구현SqlBulkCopy
은 비교적 간단합니다. ID 열을 보존하기 위해 SqlBulkCopyOptions.KeepIdentity
을 활용하여 데이터베이스 연결을 생성하는 것부터 시작하세요.
다음으로 ColumnMappings
속성을 사용하여 DataTable 열을 해당 데이터베이스 테이블 열에 매핑합니다.
마지막으로 대상 테이블을 지정하고 WriteToServer
메서드를 사용하여 DataTable 데이터를 전송합니다.
다음은 SqlBulkCopy
사용법을 보여주는 코드 예시입니다.
<code class="language-csharp">using (var bulkCopy = new SqlBulkCopy(_connection.ConnectionString, SqlBulkCopyOptions.KeepIdentity)) { // Map columns between DataTable and SQL table foreach (DataColumn col in table.Columns) { bulkCopy.ColumnMappings.Add(col.ColumnName, col.ColumnName); } bulkCopy.BulkCopyTimeout = 600; // Increased timeout for large datasets bulkCopy.DestinationTableName = destinationTableName; bulkCopy.WriteToServer(table); }</code>
SqlBulkCopy
을 사용하면 데이터 삽입 속도가 획기적으로 향상되어 대규모 DataTable을 처리할 때 최적의 성능을 얻을 수 있습니다. 매우 큰 데이터 세트의 경우 필요에 따라 BulkCopyTimeout
조정하는 것을 잊지 마세요.
위 내용은 최대 속도를 위해 데이터베이스에 DataTable 삽입을 어떻게 최적화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!