> 데이터 베이스 > MySQL 튜토리얼 > 최대 속도를 위해 데이터베이스에 DataTable 삽입을 어떻게 최적화할 수 있습니까?

최대 속도를 위해 데이터베이스에 DataTable 삽입을 어떻게 최적화할 수 있습니까?

Linda Hamilton
풀어 주다: 2025-01-08 00:00:39
원래의
131명이 탐색했습니다.

How Can I Optimize DataTable Insertion into a Database for Maximum Speed?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿