> 데이터 베이스 > MySQL 튜토리얼 > C#을 사용하여 매개변수화된 데이터를 SQL Server에 효율적으로 대량 삽입하려면 어떻게 해야 합니까?

C#을 사용하여 매개변수화된 데이터를 SQL Server에 효율적으로 대량 삽입하려면 어떻게 해야 합니까?

Mary-Kate Olsen
풀어 주다: 2025-01-12 07:31:47
원래의
474명이 탐색했습니다.

How Can I Efficiently Bulk Insert Parameterized Data into SQL Server Using C#?

C#을 사용하여 SQL Server에 대량 데이터 삽입 최적화

대규모 데이터 세트를 처리하려면 효율적인 데이터베이스 삽입 기술이 필요한 경우가 많습니다. 웹 소스 데이터를 처리할 때 매개변수화된 쿼리는 보안과 성능을 위해 매우 중요합니다. 이 문서에서는 일반적이고 비효율적인 행별 접근 방식에 대한 우수한 방법을 보여줍니다.

비효율적인 단일 행 삽입 문제 해결

개별 INSERT 문(예: INSERT INTO DATABASE('web',@data))을 사용한 반복 삽입은 속도가 느리고 SQL 삽입에 취약합니다.

해결책: 테이블 값 매개변수(TVP)

SQL Server 2008 이상 버전에서는 TVP(테이블 값 매개 변수)를 지원하여 보안을 위해 매개 변수화를 유지하면서 대량 삽입을 위한 매우 효율적인 방법을 제공합니다.

1. 사용자 정의 테이블 유형(UDT) 정의

대상 데이터베이스 테이블의 구조를 미러링하는 UDT를 생성하는 것부터 시작하세요.

CREATE TYPE MyTableType AS TABLE
(
    Col1 int,
    Col2 varchar(20)
)
GO
로그인 후 복사

2. TVP를 사용하여 저장 프로시저 만들기

다음으로 TVP를 허용하는 저장 프로시저를 만듭니다.

CREATE PROCEDURE MyProcedure
(
    @MyTable dbo.MyTableType READONLY -- READONLY is crucial for TVPs!
)
AS

INSERT INTO MyTable (Col1, Col2)
SELECT Col1, Col2
FROM @MyTable

GO
로그인 후 복사

3. TVP를 사용한 C# 구현

C# 코드는 DataTable을 활용하여 삽입 전 데이터를 보관합니다.

DataTable dt = new DataTable();
dt.Columns.Add("Col1", typeof(int));
dt.Columns.Add("Col2", typeof(string));

// Populate the DataTable with your data here

using (var con = new SqlConnection("ConnectionString"))
{
    using (var cmd = new SqlCommand("MyProcedure", con))
    {
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@MyTable", dt); // Simplified parameter addition
        con.Open();
        cmd.ExecuteNonQuery();
    }
}
로그인 후 복사

이 접근 방식은 TVP를 활용하여 개별 INSERT 문에 비해 대량 데이터를 훨씬 빠르고 안전하게 삽입할 수 있습니다. AddWithValue을 사용하면 매개변수 처리가 단순화됩니다. "ConnectionString"을 실제 연결 문자열로 바꿔야 합니다.

위 내용은 C#을 사용하여 매개변수화된 데이터를 SQL Server에 효율적으로 대량 삽입하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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